Springboot自动配置核心注解讲解

导读:本篇文章讲解 Springboot自动配置核心注解讲解,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

@EnableAutoConfiguration 自动导入

每个对应的xxxAutoconfiguration都有对应的xxxProperties 自动配置类 
@EnableConfigurationProperties  

Springboot自动配置核心注解讲解

@EnableConfigurationProperties指定要配置那个类的一些东西 上图就是指定配置HazelcastProperties类里的属性 

 

 

Springboot自动配置核心注解讲解

 

@ConfigurationProperties(
    prefix = "spring.hazelcast"
)

↑   @ConfigurationProperties这个注解主要是为了将配置文件中的属性映射到实体类上,并且支持嵌套映射。

Springboot自动配置核心注解讲解

上图解答:所以自动配置能配置的东西就是对应这个HazelcastProperties里面的东西 ↑↑↑

 

条件:

Springboot自动配置核心注解讲解

 

结论:

在我们这配置文件中能配置的东西,都存在一个固有的规律

它一定会有一个XXXProperties  这个文件被xxxAutoConfiguration装配 

Springboot自动配置核心注解讲解

Springboot自动配置核心注解讲解

 

@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里进行获取默认值 

Springboot自动配置核心注解讲解

3、如果想要修改默认值,只需要按照对应的规则在咱们的配置文件中去配 能匹配上它绑进去的值就可以了,因为里面的属性都固定了,所有的XXXProperties里面都有@ConfigurationProperties(prefix = “xxxxxx”)  xxxxxx就是绑定的配置文件 这个配置文件中有默认值 我们想要对配置的信息进行修改的话 在springboot的配置文件中yml啊等等进行对应的规则修改就可以了

Springboot自动配置核心注解讲解

Springboot自动配置核心注解讲解

来个例子解释一下:

Springboot自动配置核心注解讲解

 

Springboot自动配置核心注解讲解

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/106037.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!