1. PropertyPlaceholderConfigurery使用
注解方式:
<context:property-placeholder location="classpath*:disconf.properties"
ignore-unresolvable="true"
ignore-resource-not-found="true" order = "2" />
bean方式:
<bean id="disconfStaticConfigPropertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<!--找不到文件时不报错-->
<property name="ignoreResourceNotFound" value="true"/>
<!--是否应该忽略不可解析的占位符-->
<property name="ignoreUnresolvablePlaceholders" value="true"/>
<!--order越小,越先被执行-->
<property name="order" value="1"/>
<!--本地配置文件-->
<property name="location" value="classpath*:disconf.properties" />
<property name="propertiesArray">
<list>
<!--Properties对象引用-->
<ref bean="disconfPropertiesReader"/>
</list>
</property>
</bean>
2. PropertyPlaceholderConfigurery原理
PropertyPlaceholderConfigurery继承关系
PropertyResourceConfigurer实现了BeanFactoryPostProcessor接口,在Spring
读取了所有bean的配置元数据,但是还没有实例化的时候,完成
读取配置文件,替换占位符。
1.mergeProperties
1.1 从本地配置读取
1.2 合并传递进来的properties
2.convertProperties
2.1替换properties中value中的占位符
3.processProperties
3.1 替换spring BeanDefinition中ParentName,BeanClassName,
FactoryBeanName,
FactoryMethodName,
Scope,
PropertyValues,
ConstructorArgumentValues中的占位符
3.2 替换spring Aliases别名中的占位符
3.3 addEmbeddedValueResolver添加到嵌入式值解析器列表中
3. 动态读取PropertyPlaceholderConfigurery
public class PropertyTest implements EmbeddedValueResolverAware {
private String tempFilePath;
@Override
public void setEmbeddedValueResolver(StringValueResolver resolver) {
//默认解析${}中的参数,
// 可以在定义PropertyPlaceholderConfigurery时设置placeholderPrefix,placeholderSuffix自定义分隔符
tempFilePath = resolver.resolveStringValue("${temp.file.path}");
}
}
- 大小: 45.8 KB
- 大小: 110.2 KB
分享到:
相关推荐
String StringBuffer和StringBuilder 区别之源码解析 从源码角度简单对它们之间的区别进行了验证
java jdk中string类的源码 ,了解string类的书写,定义和声明
里面包含大多数的C语言库函数源码,其中string.h中的源码最为多,希望能对大家有所帮助。
.NET 3.5 String.cs 源代码
basic_string源码,所有的basic_string的函数都实现
c++string函数源码 无修改
C# string byte数组转换解析 C# string byte数组转换实现的过程是什么呢?C# string byte数组间的转换需要注意什么呢?C# string byte数组间转换所涉及的方法是什么呢?让我们来看看具体的内容: C# string byte数组...
List集合转换成String,String转List,Map转String,String转Map等 集合与字符串相互转换,可以自己扩展源码,带有注释
c++string类源码 包括拷贝构造函数,生拷贝浅拷贝,追加函数,赋值函数,字符串比较函数,重载运算符等等
用C++语言实现的一个功能强大的String类,该类包含对字符串的各种灵活操作,40多个强大的API(CharAt,Length,IndexOf,Replace,Add,Insert,Remove.....), 为学习数据结构的朋友提供了很好的帮助。
答:String 内部存储结构是char数组,源码如下: public final class String implements java.io.Serializable, Comparable, CharSequence { /** 该值用于字符存储. */ private final char value[]; 2.String源码中...
C# string byte数组转换解析.pdfC# string byte数组转换解析.pdf
C# string byte数组转换解析.docxC# string byte数组转换解析.docx
Java技术:Java String常见问题解析
AsyncTask 源码解析
java内存分配和String类型的深度解析Java开发Java经验技巧共12页.pdf.zip
Java字符串池(String Pool)深度解析.docx
NULL 博文链接:https://1017401036.iteye.com/blog/2254375
Educoder题目:Java面向对象 - String类答案解析
主要给大家介绍了关于java源码解析之String类的compareTo(String otherString)方法的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧