Springboot注解

1、常用注解

@autowired 顾名思义,就是自动装配,实现的依赖注入。@Autowired(required=false)表示忽略当前要注入的bean,如果有直接注入,没有跳过,不会报错。

@override 注解是伪代码,表示子类重写父类的方法,如果没有就报错。

@RestController 是@controller和@ResponseBody 的结合

@Controller 将当前修饰的类注入SpringBoot IOC容器,使得从该类所在的项目跑起来的过程中,这个类就被实例化。

@ResponseBody 它的作用简短截说就是指该类中所有的API接口返回的数据,甭管你对应的方法返回Map或是其他Object,它会以Json字符串的形式返回给客户端。

@Configuration注解的作用:声明一个类为配置类,用于取代bean.xml配置文件注册bean对象。

  • Full(proxyBeanMethods = true):这种情况主要用在bean对象的依赖情况下,如果存在一个bean依赖另一个bean时,一般会采用Full模式

  • Lite(proxyBeanMethods = false):当不存在bean对象的依赖问题时,会才有轻量级的配置

  • @ConditionalOnMissingBean,它是修饰bean的一个注解,主要实现的是,当你的bean被注册之后,如果而注册相同类型的bean,就不会成功.

@Data : 注在类上,提供类的get、set、equals、hashCode、toString等方法

@slf4j:日志注解

@Scheduled注解, 是spring boot提供的用于定时任务控制的注解,主要用于控制任务在某个指定时间执行,或者每隔一段时间执行.


2.组合注解

1.1@EnableConfigurationProperties、@ConfigurationProperties、@Component

@EnableConfigurationProperties(A.class)的作用就是如果 A 这个类上使用@ConfigurationProperties 注解,那么 A 这个类会与 xxx.properties 进行动态绑定,并且会将 A 这个类加入 IOC 容器中,并交由 IOC 容器进行管理。

@ConfigurationProperties注解,通常是用来将properties和yml配置文件属性转化为bean对象使用。

还需要@Component 注解将该类加入到 IOC 容器中,那么它就不能完成 xxx.properties 配置文件和 Java Bean 的数据绑定

1.2AOP切面编程@Around、@Aspect

@Aspect:作用是把当前类标识为一个切面供容器读取

@Around:环绕通知,用来在调用一个具体方法前和调用后来完成一些具体的任务。

https://blog.csdn.net/liaomingwu/article/details/121913633

相关注解:

  • @Pointcut:Pointcut是植入Advice的触发条件。每个Pointcut的定义包括2部分,一是表达式,二是方法签名。

  • @Around:环绕增强,相当于MethodInterceptor

  • @AfterReturning:后置增强,相当于AfterReturningAdvice,方法正常退出时执行

  • @Before:标识一个前置增强方法,相当于BeforeAdvice的功能,相似功能的还有

  • @AfterThrowing:异常抛出增强,相当于ThrowsAdvice

  •     @After: final增强,不管是抛出异常或者正常退出都会执行

1.3@RestControllerAdvice

@RestControllerAdvice是一个组合注解,由@ControllerAdvice、@ResponseBody组成,而@ControllerAdvice继承了@Component,因此@RestControllerAdvice本质上是个Component,用于定义@ExceptionHandler,@InitBinder和@ModelAttribute方法,适用于所有使用@RequestMapping方法。

  • 通过@ControllerAdvice注解可以将对于控制器的全局配置放在同一个位置。

  • 注解了@RestControllerAdvice的类的方法可以使用@ExceptionHandler、@InitBinder、@ModelAttribute注解到方法上。

  • @RestControllerAdvice注解将作用在所有注解了@RequestMapping的控制器的方法上。

  • @ExceptionHandler:用于指定异常处理方法。当与@RestControllerAdvice配合使用时,用于全局处理控制器里的异常。

  • @InitBinder:用来设置WebDataBinder,用于自动绑定前台请求参数到Model中。

  • @ModelAttribute:本来作用是绑定键值对到Model中,当与@ControllerAdvice配合使用时,可以让全局的@RequestMapping都能获得在此处设置的键值对

原文链接:https://blog.csdn.net/user2025/article/details/105458842

1.4异步,@EnableAsync、@Async

@EnableAsync只能标注在类上,表示开启异步执行,通常加在启动类上

@Async可以标注在类上、方法上。标注在类上时,此类的所有方法都将异步执行,标注在类上时,只有此方法异步执行。且此注解标注的方法不能有返回值,否则执行时将报错。

默认使用的线程池是Spring Boot提供的SimpleAsyncTaskExecutor

https://www.cnblogs.com/jinzlblog/p/15140649.html


3.注解区别

3.1@Autowired和@Resource的区别

  • 区别1:@Autowired 是spring提供的注解,@Resource 是JDK提供的注解

  • 区别2:@Autowired 默认的注入方式是ByType(根据类型进行匹配),@Resource 默认的注入方式是 ByName (根据名称进行匹配)

  • 区别3:当一个接口存在多个实现类的情况下,@Autowired 和 @Resource都需要通过名称才能匹配到对应Bean。@Autowired可以通过@Qualifier来显示指定的名称,@Resource 可以通过name来显示指定名称

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值