spring boot 使用@ConfigurationProperties
2016-04-27 17:43
726 查看
有时候有这样子的情景,我们想把配置文件的信息,读取并自动封装成实体类,这样子,我们在代码里面使用就轻松方便多了,这时候,我们就可以使用@ConfigurationProperties,它可以把同类的配置信息自动封装成实体类
首先在配置文件里面,这些信息是这样子滴
这时候我们可以定义一个实体类在装载配置文件信息
我们还可以把@ConfigurationProperties还可以直接定义在@bean的注解上,这是bean实体类就不用@Component和@ConfigurationProperties了
然后我们需要使用的时候就直接这样子注入
如果发现@ConfigurationPropertie不生效,有可能是项目的目录结构问题,你可以通过@EnableConfigurationProperties(ConnectionSettings.class)来明确指定需要用哪个实体类来装载配置信息。
首先在配置文件里面,这些信息是这样子滴
connection.username=admin connection.password=kyjufskifas2jsfs connection.remoteAddress=192.168.1.1
这时候我们可以定义一个实体类在装载配置文件信息
@Component @ConfigurationProperties(prefix="connection") public class ConnectionSettings { private String username; private String remoteAddress; private String password ; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getRemoteAddress() { return remoteAddress; } public void setRemoteAddress(String remoteAddress) { this.remoteAddress = remoteAddress; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
我们还可以把@ConfigurationProperties还可以直接定义在@bean的注解上,这是bean实体类就不用@Component和@ConfigurationProperties了
@SpringBootApplication public class DemoApplication{ //... @Bean @ConfigurationProperties(prefix = "connection") public ConnectionSettings connectionSettings(){ return new ConnectionSettings(); } public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }
然后我们需要使用的时候就直接这样子注入
@RestController @RequestMapping("/task") public class TaskController { @Autowired ConnectionSettings conn; @RequestMapping(value = {"/",""}) public String hellTask(){ String userName = conn.getUsername(); return "hello task !!"; } }
如果发现@ConfigurationPropertie不生效,有可能是项目的目录结构问题,你可以通过@EnableConfigurationProperties(ConnectionSettings.class)来明确指定需要用哪个实体类来装载配置信息。
相关文章推荐
- java开发FTP客户端列出指定目录下面所有文件
- Eclipse 中关联JDK源代码
- eclipse plug-ins导出
- ElasticSearch——Java 内存溢出
- java实现数据库中的数据导入到Excel
- structs2拦截器的实现原理和源码剖析
- 编程学习笔记之java相关::内存回收原理
- java中三种常见内存溢出错误的处理方法
- Java中Jackson库操作json的基本操作
- java设计模式之原型模式
- spring框架学习(六)AOP
- java连接mysql数据库
- 【排序算法】归并排序原理及Java实现
- maven随记1
- java的设计模式 建造者模式
- java_web Servlet第一课
- Java集合ArrayList实现原理——源码分析
- java.lang.IllegalStateException: Fragment(XXFragment) not attached to Activity异常
- Java并发编程:进程和线程之由来
- Java Map转成xml标签字符串