文档章节

spring boot 注入 property的三种方式

安西都护府首席程序员
 安西都护府首席程序员
发布于 2017/07/13 15:51
字数 386
阅读 1211
收藏 56

            以前使用spring的使用要注入property要配置PropertyPlaceholder的bean对象。在springboot除  了这种方式以外还可以通过制定 配置ConfigurationProperties直接把property文件的 属性映射到 当前类里面。

@ConfigurationProperties(prefix = "mypro", merge = true, locations = { "classpath:my.properties" })

ConfigurationProperties prefix 属性指示property文件中属性的前缀是什么。我这里写的是mypro。

因此property文件的属性必须mypro.x.y=z的形式;

     配置好ConfigurationProperties 之后就可以把property文件的属性映射到当前类了。

mypro.a:1
mypro.b:2
abc.d:123

property 文件里面mypro前缀的有a 和b两个。因此我在当前类就可以新建这两个属性。

	private int a;
	private int b;

这些需要映射的属性一定要加上getter 和setter。因为spring是通过反射调用方法来修改属性值的

 

 

        以前使用spring注入property的方式也同样适用。以前是xml配置PropertyPlaceholder。现在使用@bean 或者直接@Component配置这个类。只要把PropertyPlaceholderConfigurer添加到bean工厂,就可以使用@Value 取值了。

@Component
public class MyPropertyPlaceholderConfigurer extends PropertyPlaceholderConfigurer{

	public MyPropertyPlaceholderConfigurer(){
		
		
		 this.setIgnoreResourceNotFound(true);
	        final List<Resource> resourceLst = new ArrayList<Resource>();
	        resourceLst.add(new ClassPathResource("my.properties"));
	        this.setLocations(resourceLst.toArray(new Resource[]{}));
	}
	
}
@Value("abc.d")
	private String test;

 

        另外的一种方法跟第二种差不多的。更像以前的xml配置PropertyPlaceholder。只是现在的配置是用@Configuration标注的类,用@Bean标注要配置的bean对象;

@Configuration
public class Testproperties {
	
	
	@Bean
	public PropertyPlaceholderConfigurer properties(){
		
		
		  final PropertyPlaceholderConfigurer ppc = new PropertyPlaceholderConfigurer();
	        ppc.setIgnoreResourceNotFound(true);
	        final List<Resource> resourceLst = new ArrayList<Resource>();
	        resourceLst.add(new ClassPathResource("my.properties"));
	        ppc.setLocations(resourceLst.toArray(new Resource[]{}));
	        return ppc;
	}
	
}

© 著作权归作者所有

共有 人打赏支持
上一篇: Nginx中的坑
安西都护府首席程序员

安西都护府首席程序员

粉丝 34
博文 10
码字总数 3473
作品 0
武汉
CTO(技术副总裁)
私信 提问
加载中

评论(4)

star_seek
star_seek

引用来自“切丶克闹”的评论

还有一种最简单的,就是把property写在application.properties(YML也行),直接代码用@Value取就好
这样确实简单,但是property文件最后会越来越大,内容混杂难以管理,所以相对来说还是分开取值好点儿
切丶克闹
切丶克闹
还有一种最简单的,就是把property写在application.properties(YML也行),直接代码用@Value取就好
安西都护府首席程序员
安西都护府首席程序员
学习spring boot 加群145155309
Spring Boot整合Mybatis实例

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和...

英雄有梦没死就别停
2018/06/27
0
0
Spring Boot实践--定时任务两种(Schedule与Quartz整合)

Spring Boot实践--定时任务两种(Schedule与Quartz整合) 最近在项目中使用到定时任务,之前一直都是使用Quartz 来实现,最近看Spring 基础发现其实Spring 提供 Spring Schedule 可以帮助我们实...

spinachgit
2018/02/11
0
0
Spring IOC的三种依赖注入方式

IOC为了处理类与类之间复杂关系而产生,通过控制反转与依赖注入思想将类与类之间的关系放到配置文件中,个各类都是相对独立存在的,类之间的调用关系由配置文件来实现。由此实现程序的松耦合...

hanzhankang
2014/01/24
0
0
基于Spring Cloud Config和Kubernetes ConfigMap进行微服务集群的配置管理

众所周知,配置管理是微服务中非常重要的一环。通过集中化的配置中心,可以使维护人员统一管理、、、等各类环境的配置,大大提高了维护效率,并使得配置变更可以实时下发给各节点,并被追踪和...

暴走的初号机
2018/11/08
0
0
[3]Spring以配置文件的方式进行属性注入

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_19560943/article/details/73603698 在Java中进行属性注入的三种方式(也就是给属性赋值的几种方式) 1....

wangke_king
2017/06/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

《傲慢与偏见》的读书笔记与读后感作文2400字

《傲慢与偏见》的读书笔记与读后感作文2400字: 作者:孙苑馨;笔者按:读书这个习惯是我爸妈养出来的。小时候父母赚的钱除了吃饭穿衣剩下的就是买书了,他们除了买各种新鲜出版的文艺派图书...

原创小博客
25分钟前
2
0
oozie job 的挂了监控报警或重启

oozie Coordinator 的job 和actioni状态很多,但好像不支持设置某状态如failed后30分钟后自动重新拉启,因他的条件只有几种:触发条件可以是一个时间频率、一个dataset实例是否可用,或者可能...

hblt-j
44分钟前
1
0
python精简笔记-[6]-[if,for,while]语句

1.if 条件判断 语法: if 判断条件: 执行语句……elif 判断条件:    执行语句……elif 判断条件:    执行语句……else: 执行语句…… 实例1: n = input("请输...

平头哥-Enjoystudy
47分钟前
1
0
RxJava 是如何实现线程切换的(上)

前言 通过前一篇的从观察者模式出发,聊聊RxJava,我们大致理解了RxJava的实现原理,在RxJava中可以非常方便的实现不同线程间的切换。subscribeOn 用于指定上游线程,observeOn 用于指定下游线...

亭子happy
今天
2
0
想晋级高级工程师只知道表面是不够的!Git内部原理介绍

本文由云+社区发表 作者:腾讯工蜂用户:王二卫 从不一样的视角了解git,以便更好的使用git 一、git & git 版本库认识 git 是一个内容寻址的文件系统,其核心部分是一个简单的键值对数据库(...

腾讯云加社区
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部