@EnableAutoConfiguration 自动导入 每个对应的xxxAutoconfiguration都有对应的xxxProperties 自动配置类
@EnableConfigurationProperties
@EnableConfigurationProperties指定要配置那个类的一些东西 上图就是指定配置HazelcastProperties类里的属性
@ConfigurationProperties( prefix = "spring.hazelcast" )
↑ @ConfigurationProperties这个注解主要是为了将配置文件中的属性映射到实体类上,并且支持嵌套映射。
上图解答:所以自动配置能配置的东西就是对应这个HazelcastProperties里面的东西 ↑↑↑
条件:
结论:
在我们这配置文件中能配置的东西,都存在一个固有的规律
它一定会有一个XXXProperties 这个文件被xxxAutoConfiguration装配
@EnableConfigurationProperties解释1:
@EnableConfigurationProperties的作用是开启@ConfigurationProperties。
@ConfigurationProperties的作用是将配置文件转换成类对象,便于修改或者获取值。
所以会在@ConfigurationProperties前面加上@Compent。
@Compent的作用是对spring说,我是一个bean,你现在要来管理我。
然后在JavaConfig中,@Configuration其实就是告诉spring,spring容器要怎么配置(怎么去注册bean,怎么去处理bean之间的关系(装配))。那么久很好理解了,@Bean的意思就是,我要获取这个bean的时候,你spring要按照这种方式去帮我获取到这个bean。
用@Bean注解的方法:会实例化、配置并初始化一个新的对象,这个对象会由spring IoC 容器管理。最后你就可以使用@AutoWired 去的到这个对象啦。@Configuration和@Bean的配合使用就相当于是配置 xml。
<beans>
<bean id=”myService” class=”com.acme.services.MyServiceImpl”/>
</beans>
交给spring IoC 容器管理。例子:
@Component
public class Student {
private String name = "lkm"; public String getName() { return name; } public void setName(String name) { this.name = name; }
}
@Configuration
public class WebSocketConfig {
@Bean
public Student student(){
return new Student();
}}
@EnableConfigurationProperties解释2:
@EnableConfigurationProperties注解的作用是: 让使用 @ConfigurationProperties 注解的类生效。当
@EnableConfigurationProperties
注解应用到你的@Configuration
时, 任何被@ConfigurationProperties
注解的beans将自动被Environment属性配置。 这种风格的配置特别适合与SpringApplication的外部YAML配置进行配合使用。application.yml配置文件 userbody: name: 测试 password: 123456 birthday: 1992.10.28 mobile: 138027897343 address: 北京市西城区实体类: @ConfigurationProperties(prefix = "user") @Data @NoArgsConstructor @AllArgsConstructor public class User { private Long id; private String age; private String name; private String password; private String birthday; private String mobile; private String address; }Controller层上:
@EnableConfigurationProperties({User.class}) 对应实体类User
通过XXXProperties的方式可以加载一些自定义的文件 ,XXXProperties跟配置文件绑定后 我们就可以使用自定义的配置了!
一句话概括:
1、Springboot刚开始帮我们自动装配 这是第一步
2、装配完成之后xxxAutoconfigUartion要存在默认值 会从XXXProperties里进行获取默认值
3、如果想要修改默认值,只需要按照对应的规则在咱们的配置文件中去配 能匹配上它绑进去的值就可以了,因为里面的属性都固定了,所有的XXXProperties里面都有@ConfigurationProperties(prefix = “xxxxxx”) xxxxxx就是绑定的配置文件 这个配置文件中有默认值 我们想要对配置的信息进行修改的话 在springboot的配置文件中yml啊等等进行对应的规则修改就可以了
来个例子解释一下:
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/106037.html