用法一
使用@ConfigurationProperties和@Component注解到bean定义类上
@Data
@Component
@ConfigurationProperties(prefix = "test.user")
public class User {
// 11
private String age;
// bobo
private String userName;
}
// application.properties配置文件内容如下:
// @ConfigurationProperties会将对应前缀的后面的属性与Bean对象的属性匹配,符合条件则进行赋值。
test.user.age = 11
// 可以将"-"转换为驼峰
test.user.user-name = bobo
用法二
使用@ConfigurationProperties和@Bean注解在配置类的Bean定义方法上
/**
将前缀为“datasource.mysql”的属性,赋值给DataSource Bean 对应的属性值
*/
@Configuration
public class DataSourceConfig {
@Primary
@Bean(name = "getDataSource")
@ConfigurationProperties(prefix = "datasource.mysql")
public DataSource getDataSource() {
//DataSourceBuilder.create().build() 默认数据源类型是 org.apache.tomcat.jdbc.pool.DataSource
//这里指定使用类型 -- 阿里DruidDataSource 连接池
return DataSourceBuilder.create().type(DruidDataSource.class).build();
}
}
用法三
使用@ConfigurationProperties注解到普通类
@Data
@ConfigurationProperties(prefix = "test.user")
public class User {
// 11
private String age;
// bobo
private String userName;
}
然后再通过@EnableConfigurationProperties定义为Bean
/**
@EnableConfigurationProperties对User进行实例化时,就可以用@ConfigurationProperties对属性进行匹配赋值。
*/
@SpringBootApplication
@EnableConfigurationProperties({User.class})
public class Application {
public static void main(String[] args) throws Exception {
SpringApplication.run(Application.class, args);
}
}
本文详细介绍了Java Spring Boot中@ConfigurationProperties的三种用法:一是结合@Component注解直接注入Bean;二是配合@Bean注解在配置类中定义Bean;三是通过@EnableConfigurationProperties在启动类中实例化Bean。每种用法都展示了如何将application.properties配置文件中的属性值映射到Bean的属性上,实现属性注入。
1836

被折叠的 条评论
为什么被折叠?



