Springboot常用的注解

1. 事务

@EnableTransactionManagement
  • 标注在配置类上,开启事务功能
@Transactional
  • 可以标注在类上,默认这个类所有公共方法添加事务
  • 标注在方法上,默认这个方法如果是公共的则会添加事务

 2. 核心

@Order
  • 控制bean的加载顺序,默认最低优先级
  • 数字越大优先级越低 

3. 事件、异步、调度

@EventListener
  • 标注在方法上,监听到指定事件则调用该方法
@TransactionalEventListener
  • 标注在方法上,监听事务的状态,监听到某种状态则执行该方法
@EnableAsync
  • 标注在配置类上,表示开启异步功能。使得@Async注解能生效
@Async
  •  可以标注在类或者方法上
  • 标注在方法上表示这个方法执行由线程池去执行。而不是本线程去执行
@EnableScheduling
  • 标注在配置类上,表示开启调度功能
@Scheduled
  • 标注在方法上,定时执行
@Schedules
  • 标注在方法,相当于一个方法加了多个@Scheduled。定时执行方法

4. 切面

@EnableAspectJAutoProxy
  • 添加在主配置类上,开启AOP切面功能
@Aspect
  • 标注在类上,表明这个类是切面
// 切入点定义
@Pointcut
// 前置通知
@Before
// 后置通知
@After
// 最终通知
@AfterRunning
// 异常通知
@AfterThrowing
// 环绕通知
@Around
  • 标注在切面类的方法上

5. 组件扫描与配置类

@ComponentScan
  •  标注在配置类上,包扫描
@Import
  • 标注在配置类上,导入组件
@Lazy
  • 与@Bean一起使用时,表明这个bean懒加载
  • 如果加在构造方法参数上,参数注入的是提前创建的代理对象(可以解决构造参数的循环依赖)
@PropertySource(value = {"demo/props/demo.properties"})
  • 标注在类上,为这个类指定配置文件
  • @PropertySource + @Value可以实现基本属性绑定

@ConfigurationProperties(prefix = "demo")
  • 标注在类上,实现属性自动绑定
  • 但是如果这个类没有添加到spring容器,自己手动new则无法绑定
@EnableConfigurationProperties(MyConfigurationProperties.class)
  • 一般添加到配置类上,将MyConfigurationProperties组件添加到容器中
  • 一般情况如果MyConfigurationProperties只添加@ConfigurationProperties而没添加@Component,则是无法生效的,因为这个组件没加入spring容器中。

6. 缓存

@EnableCaching
  • 标注在配置类上,开启缓存
@CacheConfig
@CacheEvict
@CachePut
@Cacheable
@Caching
  • 标注在方法上,表明这个方法的返回值是可以缓存的。查询可以先查缓存,缓存没有再执行方法。
  • 详细的使用方法请百度

6. 统一异常处理

@ControllerAdvice(basePackages = "com.text.controller")
  • 标注在类上,表明这个类是统一异常处理类
@RestControllerAdvice
  • 等价于@ResponseBody+@ControllerAdvice
@ExceptionHandler(value = Exception.class)
  • 标注在统一异常处理类的方法上,当捕捉到指定异常就执行该方法。

7. 跨域

@CrossOrigin(origins = "http://domain2.com", maxAge = 3600)
  • 标注在controller类上火controller类的方法上,设置跨域访问。

你可能感兴趣的:(java框架,spring,spring,boot,java)