本文主要是介绍ConfigurationProperties使用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
ConfigurationProperties
是Spring Framework
的一个注解 用于将配置文件,环境变量中的值映射到一个Java
对象的属性上。
简单使用
user:admin:name: adminpassword: 123456age: 18
@Data
@Component
@ConfigurationProperties(prefix = "user.admin")
public class User {private String name;private String password;private Integer age;
}
测试:
@SpringBootTest
class UserTest {@Autowiredprivate User admin;@Testpublic void test(){System.out.println(admin);}
}
输出:可以看见他把属性按照名称已经注入到对象中去了。
类型转换
它还会额外绑我们坐下简单的 类型转换。
public class User {// ...// 将 Integer 修改为 Stringprivate String age;
}
测试:age
也 18
级联属性
@Data
public class Profile {private String account;private String sex;
}
public class User {// ...// 增加一个 profileprivate Profile profile;
}
user:admin:name: adminpassword: 123456age: 18# 增加级联属性配置profile:account: adminAccountsex: F
测试:
数组属性
public class User {// ...// 增加一个数组private String[] alias;
}
user:admin:name: adminpassword: 123456age: 18profile:account: adminAccountsex: Falias:- 管理员- 超级管理员- Admin# 两种配置方式都可以# alias[0]: 管理员# alias[1]: 超级管理员# alias[2]: Admin
什么时候赋的值呢?
public class User {// ...// 增加一个构造函数public User() {System.out.println("create user");}
}
它是先创建对象(Spring
创建的因为有 @Component
),然后再赋值
与@Bean 结合使用
首先将 User.java
上的 @Component
与 @ConfigurationProperties
去掉
@Configuration
public class UserConfig {@Bean@ConfigurationProperties(prefix = "user.admin")public User user(){User user = new User();user.setAge("19");return user;}
}
可以看出来在 @Bean
里面赋的值被覆盖了。就相当与它是在 return
后对返回的对象又对他进行了赋值
这篇关于ConfigurationProperties使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!