最近,在学习spring boot框架,其中有很多注解,几乎0配置。因此,将遇到的注解加以了解并记录。
- @SpringBootConfiguration 表示 Spring Boot 的配置注解。
- @EnablAutoConfiguration 表示自动配置。
- @ComponentScan 表示 Spring Boot 扫描 Bean 的规则。
- @Configuration 加入了这个注解的类被认为是 Spring Boot 的配置类,我们知道可以在 application.yml设置一些配置,也可以通过代码设置配置。不过 Spring Boot官方推荐 Spring Boot 项目用 SpringBootConfiguration 来代替 Configuration。
- @Bean 这个注解是方法级别上的注解,主要添加在 @SpringBootConfiguration 或 @Configuration 注解的类,有时也可以添加在 @Component 注解的类。 它的作用是定义一个Bean。
@Bean
public ApiInterceptor interceptor(){
return new ApiInterceptor();
}
那么,我们可以在 ApiInterceptor 里面注入其他 Bean,也可以在其他 Bean 注入这个类。
- @Value 通常情况下,我们需要定义一些全局变量,都会想到的方法是定义一个 public static 变量,在需要时调用,是否有其他更好的方案呢?答案是肯定的。下面请看代码:
@Value("${server.port}")
String port;
@RequestMapping("/hello")
public String home(String name) {
return "hi "+name+",i am from port:" +port;
}
其中,server.port 就是我们在 application.yml 里面定义的属性,我们可以自定义任意属性名,通过 @Value
注解就可以将其取出来。它的好处不言而喻:- 定义在配置文件里,变量发生变化,无需修改代码。
- 变量交给Spring来管理,性能更好。
- @AfterThrowing 处理未处理的异常。