2. Spring 常用注解

@Component
public class BookDao {
  ...
}

使用 @Component 注解在 BookDao 类声明处对它进行标注,这样它就可以被 Spring 容器识别, 并把这个类转换为容器管理的 Bean

注解 说明
@Repository 标注 DAO 实现类。
@Service 标注 Service 实现类。
@Controller 标注 Controller 实现类。
@Component 标注 Bean 实现类。
@Data 注解在类上, 为类提供get()set(), 此外还提供了 equals()hashCode()toString()方法。
@Getter/@Setter 注解在类上, 为类提供读写属性。
@ToString 注解在类上, 为类提供 toString() 方法
@Slf4j 注解在类上, 为类提供一个属性名为 log 的 log4j 的日志对象
@Log4j 注解在类上, 为类提供一个属性名为 log 的 log4j 的日志对象

2.1. @PostConstruct

@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器执行一次。PostConstruct在构造函数之后执行,init()方法之前执行。PreDestroy()方法在destroy()方法执行之后执行

2.1.1. @PostConstruct应用场景

在项目中@PostConstruct主要应用场景是在初始化Servlet时加载一些缓存数据等。

2.2. @Scheduled

  • 需要在定时任务的类上加上注释:@Component,在具体的定时任务方法上加上注释@Scheduled,@EnableScheduling即可启动该定时任务

  • @Scheduled(fixedRate=3000):上一次开始执行时间点后3秒再次执行;

  • @Scheduled(fixedDelay=3000):上一次执行完毕时间点后3秒再次执行;

  • @Scheduled(initialDelay=1000, fixedDelay=3000):第一次延迟1秒执行,然后在上一次执行完毕时间点后3秒再次执行;

  • @Scheduled(cron="* * * * * ?"):按cron规则执行。

2.3. @FeignClient