Java开发必备之配置类总结
在我们开发中,有两种非常常见的配置类配置的方式
不过呢,在此之前我带你认识一下一些注解:
认识:
1.@ConfigurationProperties 是什么呢?
@ConfigurationProperties 是 Spring Boot 中的标签,它可以让开发者将整个配置文件,映射到对象中,比@Value 效率更高。
@ConfigurationProperties注解的作用是配置属性。可以根据配置文件中的配置内容直接赋值到对象属性。
如:
写法: @ConfigurationProperties(prefix="从yml配置文件获取的配置内容")
yml: (内容获取处)
@ConfigurationProperties 能支持 properties 文件和 yml 文件,并且支持更复杂配置结构以及 Validation 功能。
2. @ConfigurationProperties注解与@Value注解区别 ?
这两个注解都能注入属性的值,那么这两个注解的区别是什么?
@ConfigurationProperties能够批量注入配置文件的属性。
@ConfigurationProperties支持松散绑定。
@ConfigurationProperties(prefix = "person"),只需要指定一个前缀,就能绑定有这个前缀的所有属性值。
@Value不支持复杂类型封装注解。
@Value只能一个个指定。
使用Spring的底层注解@Value注入属性的值。
3.@Component
开发中难免会遇到这个这个注解@Component ,可以说一个非常常见的注解
@Componet是Spring里的通用注解,用于声明bean,可以配置任意组件
泛指各种组件,就是说当我们的类不属于各种归类的时候(不属于@Controller、@Services等的时候),我们就可以使用@Component来标注这个类。
4.@EnableConfigurationProperties
@EnableConfigurationProperties的作用是开启@ConfigurationProperties。
使已有的 @ConfigurationProperties 注解的类生效。
现在让我们开始来说说配置类配置的两种方式
方式一: 自动加载配置类
将配置类交于spring容器,其他地方直接注入即可。
配置类:
配置类中使用 @Component和@ConfigurationPropertie 注解
直接将配置交于Spring容器,自动加载配置类
yml文件:
如何使用?
使用配置类
直接使用@Resource注入即可使用
方式二: 手动加载配置类
配置类仅确定配置信息,使用手动加载配置类
配置类:
其中只用了@ConfigurationProperties 注解
如何使用?
使用配置类
其中就用到了我最开始介绍的注解@EnableConfigurationProperties
@EnableConfigurationProperties的作用就是开启@ConfigurationProperties。
使已有的 @ConfigurationProperties 注解的类生效即可进行@Resource注入使用
总结:
总的来说如果在配置类只配置@ConfigurationProperties注解,而没有使用@Component( @Compent的作用是对spring说,我是一个bean,你现在要来管理我)如果没有使用@Component, 那么在IOC容器中是获取不到properties 配置文件转化的bean。说到底 @EnableConfigurationProperties 相当于把@ConfigurationProperties 的类进行了一次注入,在开发中两种方式可二选一, 效果都是一样的噢!
请给努力中的自己点个赞哦!
每天进步一点点`~~~~~