Mongoosej.Blog.Software.Programming.Java.Framework.Spring.AnnotationList
@Bean
SpringFramework
标注一个方法,表示方法的返回值会被作为组件注入到spring容器,默认组件id就是方法名。等同于Spring配置文件中的
@SpringBootApplication
SpringBoot
用来标注一个主程序类,表面这是一个SpringBoot应用。
@AutoConfigurationPackage
SpringBoot
将主配置类(@SpringBootApplication注解的类)所在包以及其子包下的类扫描到IOC容器。
@Controller
SpringFramework
标注一个类,说明其是MVC中的控制器。
@ResponseBody
SpringFramework
标注一个类或者方法,表示类中所有方法或者方法的返回值作为http请求的响应body。
@RestController
SpringFramework
标注一个类,说明标注类是一个Rest控制器,效果约等于@Controller+@ResponseBody。
@Async
SpringFramework
@Async为异步注解,放到方法上,表示调用该方法的线程与此方法异步执行,需要配合@EnableAsync注解使用。
reference:
配置
@Vaule
SpringFramework
标注一个变量,使其与配置文件或者环境变量中的属性绑定。
@PropertySource
SpringFramework
标注一个类,用于指定需要加载的配置文件。
@ImportResource
SpringFramework
标注一个类,告诉spring将指定配置文件中的组件注入到spring容器,可以向容器中添加组件。
@Configuration
SpringFramework
指定标注的类是一个配置类,当然也是一个Spring组件。等同于一个的Spring配置文件。
@ConfigurationProperties
SpringBoot
当该注解标注的类注入IOC容器时,告诉SpringBoot将该注解标注的类中是所有属性和配置文件中的配置进行松散绑定。
使用注解的prefix属性来决定与配置文件中哪些前缀开头的属性绑定;需要依赖spring-boot-configuration-processor;默认从全局配置文件application.xml.yml.properties中获取属性,如果需要指定配置文件,需要搭配@PropertyResource注解。
reference:
- @ConfigurationProperties 注解使用姿势,这一篇就够了
- 注解@ConfigurationProperties使用方法
- @ConfigurationProperties和@Value的区别
- @ConfigurationProperties注解原理与实战
- 详解@ConfigurationProperties实现原理与实战
@EnableConfigurationProperties
SpringBoot
使其属性指定的@ConfigurationProperties注解的配置属性类生效(即注入IOC容器)。
如果一个配置属性类只配置@ConfigurationProperties注解,而没有使用@Component,那么在IOC容器中是获取不到properties 配置文件转化的bean。
@EnableConfigurationProperties相当在@Configuration注解的配置类注入IOC容器前,把其属性指定的@ConfigurationProperties注解的配置属性类进行了一次注入。
所以其实注入@ConfigurationProperties注解的配置属性类有两种方式:
- 在@ConfigurationProperties注解的配置属性类上添加@Component/@Bean注解。
- 在@Configuration注解的配置类上添加@EnableConfigurationProperties注解并将该注解的属性指向配置属性类。[官方推荐]