文档章节

spring boot 注入 property的三种方式

安西都护府首席程序员
 安西都护府首席程序员
发布于 2017/07/13 15:51
字数 386
阅读 1173
收藏 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;
	}
	
}

© 著作权归作者所有

共有 人打赏支持
安西都护府首席程序员

安西都护府首席程序员

粉丝 34
博文 9
码字总数 3151
作品 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 或注解来配置和...

英雄有梦没死就别停
06/27
0
0
Spring IOC的三种依赖注入方式

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

hanzhankang
2014/01/24
0
0
[3]Spring以配置文件的方式进行属性注入

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

wangke_king
2017/06/22
0
0
spring学习4-bean配置文件

上篇简单介绍了一下bean配置文件注入简单的属性和复杂一点的类注入,今天说一下其他类型的注入。 spring中提供配置Bean有三种实例化的方式 类构造器实例化 静态工厂方法实例化 实例工厂方法实...

大嘴吃鸡腿
2014/03/17
0
0
Jasypt Spring Boot 2.1.0,Spring Boot 项目属性源加密

Jasypt Spring Boot 2.1.0 已发布。Jasypt Spring Boot 为 Spring Boot 项目中的属性源(property sources)提供加密支持。 有三种方法可以在项目中集成 jasypt-spring-boot: 如果 Spring Boo...

淡漠悠然
07/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

HashTable

Hashtable 是一个散列表,它存储的内容是键值对(key-value)映射 Hashtable 继承于Dictionary,实现了Map、Cloneable、java.io.Serializable接口 Hashtable 的函数都是同步的,这意味着它是线...

职业搬砖20年
19分钟前
1
0
Linux系统状态查看命令1

10月23日任务 10.1 使用w查看系统负载 10.2 vmstat命令 10.3 top命令 10.4 sar命令 10.5 nload命令 查看系统负载 w命令 # 第一行:当前系统时间,系统启动时间,登录的用户,系统负载:1分钟...

robertt15
35分钟前
1
0
缓存那些事

前言 一般而言,现在互联网应用(网站或App)的整体流程,可以概括如图1所示,用户请求从界面(浏览器或App界面)到网络转发、应用服务再到存储(数据库或文件系统),然后返回到界面呈现内容...

Skqing
44分钟前
2
0
nginx开启stub_status模块配置方法

nginx开启stub_status模块配置方法 2017年12月13日 15:57:29 ly_dengle 阅读数:3765 标签: stub_statusnginxnginx开启stub_status模块 更多 个人分类: 软件工具php 版权声明:本文为博主原...

linjin200
50分钟前
3
0
挑逗 Java 程序员的那些 Scala 绝技

有个问题一直困扰着 Scala 社区,为什么一些 Java 开发者将 Scala 捧到了天上,认为它是来自上帝之吻的完美语言;而另外一些 Java 开发者却对它望而却步,认为它过于复杂而难以理解。同样是 ...

joymufeng
53分钟前
134
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部