spring boot常用注解小计
@Async
需要执行异步方法时,在方法上加上@Async
之后,底层使用多线程技术 。启动类上需要加上 @EnableAsync
注意:异步执行方法,不能与引用方法同在一个类里
@Transactional
org.springframework.transaction.annotation
包 ,不是来自javax.transaction
。而且@Transactional
不仅可以注解在方法上,也可以注解在类上。当注解在类上的时候意味着此类的所有public方法都是开启事务的。如果类级别和方法级别同时使用了@Transactional
注解,则使用在类级别的注解会重载方法级别的注解。
/** * 添加一个事务 */ @Transactional(rollbackFor = Exception.class) public void tranTest() { /** * 事务中重新开启新的事务 */ ((TestService) AopContext.currentProxy()).newTranTest(); } /** * 另起一个新事务 */ @Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class) public void newTranTest(){ }
@EnableTransactionManagement
注意:Springboot提供了一个@EnableTransactionManagement
注解在配置类上来开启声明式事务的支持。注解@EnableTransactionManagement
是默认打开的,想要关闭事务管理,想要在程序入口将这个注解改为false
@Scheduled(fixedDelay = 时间间隔 )
@Scheduled(fixedRate = 时间间隔 )
@Scheduled(cron = cron表达式)
启动
要在主方法上加上 @EnableScheduling
类中添加@Slf4j
注解即可。使用是直接输入log全局变量
Lombok的其他用法
@Data 标签,生成getter/setter toString()等方法 @NonNull : 让你不在担忧并且爱上NullPointerException @CleanUp : 自动资源管理:不用再在finally中添加资源的close方法 @Setter/@Getter : 自动生成set和get方法 @ToString : 自动生成toString方法 @EqualsAndHashcode : 从对象的字段中生成hashCode和equals的实现 @NoArgsConstructor/@RequiredArgsConstructor/@AllArgsConstructor 自动生成构造方法 @Data : 自动生成set/get方法,toString方法,equals方法,hashCode方法,不带参数的构造方法 @Value : 用于注解final类 @Builder : 产生复杂的构建器api类 @SneakyThrows : 异常处理(谨慎使用) @Synchronized : 同步方法安全的转化 @Getter(lazy=true) : @Log : 支持各种logger对象,使用时用对应的注解,如:@Log4
@EnableCaching
在 Spring Boot中,通过@EnableCaching
注解自动化配置合适的缓存管理器(CacheManager),Spring Boot根据下面的顺序去侦测缓存提供者: Generic , JCache (JSR-107), EhCache 2.x ,Hazelcast , Infinispan ,Redis ,Guava , Simple