# 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 的日志对象 #### @PostConstruct 被`@PostConstruct`修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器执行一次。`PostConstruct`在构造函数之后执行,init()方法之前执行。PreDestroy()方法在destroy()方法执行之后执行 ##### @PostConstruct应用场景 在项目中@PostConstruct主要应用场景是在初始化Servlet时加载一些缓存数据等。 #### @Scheduled - 需要在定时任务的类上加上注释:@Component,在具体的定时任务方法上加上注释@Scheduled,@EnableScheduling即可启动该定时任务 - @Scheduled(fixedRate=3000):上一次开始执行时间点后3秒再次执行; - @Scheduled(fixedDelay=3000):上一次执行完毕时间点后3秒再次执行; - @Scheduled(initialDelay=1000, fixedDelay=3000):第一次延迟1秒执行,然后在上一次执行完毕时间点后3秒再次执行; - @Scheduled(cron="* * * * * ?"):按cron规则执行。 #### @FeignClient