(1)第三方bean属性绑定 :
@ConfigurationProperties(prefix = "指定的配合属性的上级属性")
在配置文件中设置属性 , 属性名必须与实体类的属性名一致
servers:
ipAddress: 127.0.0.1
port: 2345
timeout: -1
#超时时间 , 设置为-1就是永不超时
在实体类中:
@Component //设置为bean对象 , 在容器初始化的时候 , 加载它
@Data
@ConfigurationProperties(prefix = "servers") //指定配置文件中的属性的上级属性
public class ServletConfig {
private String ipAddress;
private int port;
private long timeout;
}
这样就可以将配置文件中的属性 , 加载到bean中
@EnableConfigurationProperties(指定实体类的.class文件) : 可以将使用@ConfigurationProperties注解对应的类加载进Spring容器中
@SpringBootApplication
@EnableConfigurationProperties(ServletConfig.class)
public class SpringBoot10ConfigurationApplication {
public static void main(String[] args) {
ConfigurableApplicationContext run = SpringApplication.run(SpringBoot10ConfigurationApplication.class, args);
ServletConfig bean = run.getBean(ServletConfig.class);
System.out.println(bean);
}
}
这个注解是告诉Spring我要去加载一组配置 , 交给Spring去进行管理 , 所以 , 这个注解也可以完成bean的创建 ,
注意 :
- 使用这个注解的话 , 如果实体类中设置了 @Component注解的话 , 会造成冲突 , 因为会生成两个bean , 进入Spring容器 ,
(2)松散绑定 :
@ConfigurationProperties绑定属性支持属性名宽松绑定
绑定前缀命名规范 : 仅能使用纯小写字母,数字,下划线作为合法字符
无论你写下边的什么格式 , 都可以识别, 但是字母一定要一一对应
配置文件的书写格式:
名称 | 格式 |
---|---|
驼峰 | ipAddress |
unline | ip_address |
烤肉串模式 (推荐使用) | ip-address |
常量模式 | IP_ADDRESS |