spring boot 注入 property的三种方式(推荐)
以前使用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; } }
以上所述是小编给大家介绍的spring boot 注入 property的三种方式,希望对大家有所帮助
上一篇: 极点五笔输入法造词功能使用教程