SpringBoot常用注解实例分析

发布时间:2022-06-06 15:12:44 作者:iii
来源:亿速云 阅读:196

这篇文章主要介绍“SpringBoot常用注解实例分析”,在日常操作中,相信很多人在SpringBoot常用注解实例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”SpringBoot常用注解实例分析”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

1 概述

IOC 是Spring 最为重要的功能之一,就是将Bean初始化加载到容器中,Bean是如何加载到容器的,可以使用Spring注解方式或者Spring XML配置方式。

简言之,注解本身没有什么业务功能的,和 xml 一样,是一种元数据,元数据即解释数据的数据,这就是所谓配置。

2 常用注解

@Component

表示一个带注释的类是一个“组件”,成为Spring管理的Bean。当使用基于注解的配置和类路径扫描时,这些类被视为自动检测的候选对象。同时@Component还是一个元注解。

SpringBoot常用注解实例分析

所谓元注解,其实就是可以注解到别的注解上的注解,被注解的注解称之为组合注解,组合注解具备其上元注解的功能。

SpringBoot常用注解实例分析

@Service

组合注解(组合了@Component注解),应用在service层(业务逻辑层)。

@Repository

组合注解(组合了@Component注解),应用在dao层(数据访问层)。

@Controller

组合注解(组合了@Component注解),应用在MVC层(控制层),DispatcherServlet会自动扫描注解了此注解的类,然后将web请求映射到注解了@RequestMapping的方法上。

@RequestMapping

用于映射Web请求,包括访问路径和参数。(类或方法上)

@ResponseBody

注解的作用是将controller的方法返回的对象通过适当的转换器转换为指定的格式之后,写入到response对象的body区,通常用来返回JSON数据或者是XML数据。

注意:在使用此注解之后不会再走视图处理器,而是直接将数据写入到输入流中,他的效果等同于通过response对象输出指定格式的数据。

@RequestBody

将 HTTP 请求正文插入方法中,使用适合的 HttpMessageConverter 将请求体写入某个对象。

作用:

使用时机

GET、POST方式提时, 根据request header Content-Type的值来判断:

PUT方式提交时, 根据request header Content-Type的值来判断

application/x-www-form-urlencoded, 必须;multipart/form-data, 不能处理;其他格式, 必须

举个例子:

@RequestMapping(value = "user/login")
@ResponseBody
// 将ajax(datas)发出的请求写入 User 对象中
public User login(@RequestBody User user) {   
// 这样就不会再被解析为跳转路径,而是直接将user对象写入 HTTP 响应正文中
    return user;

@PathVariable

用于接收路径参数,比如@RequestMapping(“/hello/{name}”)申明的路径,将注解放在参数中前,即可获取该值,通常作为Restful的接口实现方法。

@RestController

该注解为一个组合注解,相当于@Controller和@ResponseBody的组合,注解在类上,意味着,该Controller的所有方法都默认加上了@ResponseBody。

@ExceptionHandler

用于全局处理控制器里的异常。为什么会有这个注解,原因在于:

@ModelAttribute

本来的作用是绑定键值对到 Model 里,在 @ControllerAdvice 中是让全局的@RequestMapping都能获得在此处设置的键值对。

@Autowired

可以对成员变量、方法和构造函数进行标注,来完成自动装配的工作,@Autowired标注可以放在成员变量上,也可以放在成员变量的set方法上,也可以放在任意方法上表示,自动执行当前方法,如果方法有参数,会在IOC容器中自动寻找同类型参数为其传值。

注意:@Autowired是根据类型进行自动装配的,如果需要按名称进行装配,则需要配合@Qualifier使用;

@Configuration

声明当前类是一个配置类(相当于一个Spring配置的xml文件)。

@Bean

注解在方法上,声明当前方法的返回值为一个Bean。返回的Bean对应的类中可以定义init()方法和destroy()方法,然后在@Bean(initMethod=”init”,destroyMethod=”destroy”)定义,在构造之后执行init,在销毁之前执行destroy。

@ComponentScan

自动扫描指定包下所有使用@Service、@Component、@Controller、@Repository的类并注册。

@Aspect

声明一个切面(类上) 使用@After、@Before、@Around定义建言(advice),可直接将拦截规则(切点)作为参数。

@Scope

定义我们采用什么模式去创建Bean(方法上,得有@Bean) 其设置类型包括:

@Scope("prototype")//多实例,IOC容器启动创建的时候,并不会创建对象放在容器在容器当中,当你需要的时候,需要从容器当中取该对象的时候,就会创建。
@Scope("singleton")//单实例 IOC容器启动的时候就会调用方法创建对象,以后每次获取都是从容器当中拿同一个对象(map当中)。
@Scope("request")//同一个请求创建一个实例
@Scope("session")//同一个session创建一个实例

@PostConstruct

标注在方法上,该方法在构造函数执行完成之后执行。

@PreDestory

标注在方法上,该方法在对象销毁之前执行。

@Value

经常与Sping EL表达式语言一起使用,注入普通字符,系统属性,表达式运算结果,其他Bean的属性,文件内容,网址请求内容,配置文件属性值等。

@EnableAsync

配置类中,通过此注解开启对异步任务的支持,叙事性AsyncConfigurer接口。

@Async

在实际执行的bean方法使用该注解来申明其是一个异步任务(方法上或类上所有的方法都将异步,需要@EnableAsync开启异步任务)

@EnableScheduling

在配置类上使用,开启计划任务的支持。

@Scheduled

来申明这是一个任务,包括cron,fixDelay,fixRate等类型。

@Enable*注解说明

这些注解主要用来开启对xxx的支持。 @EnableAspectJAutoProxy 开启对AspectJ自动代理的支持。

到此,关于“SpringBoot常用注解实例分析”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

推荐阅读:
  1. spring和springboot常用注解总结
  2. 二、Springboot 常用注解

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

springboot

上一篇:UEFI开发用户交互界面实例分析

下一篇:Java自动释放锁如何实现

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》