转自:
http://www.java265.com/JavaFramework/Spring/202207/3975.html
下文笔者讲述initPropertySource()方法的功能简介说明,如下所示
initPropertySource()方法简介
- initPropertySource()方法简介:
- 主要用于Environment后
- 为系统提供良好的扩展
复制代码 initPropertySource()方法启动点
-
- public ClassPathXmlApplicationContext(String[] configLocations,
- boolean refresh,
- ApplicationContext parent) throws BeansException{
- super(parent);
- setConfigLocationins(configurations);
- if(refresh){
- refresh();
- }
- }
-
- refresh()中的第一个方法prepareRefresh()
- 调用initPropertySources()方法
- protected void prepareRefresh(){
- initPropertySources();
- }
-
- 从以上的源码中
- 我们得知prepareRefresh()中
- initPropertySources()方法并没有任何参数
- 当进入initPropertySources()方法内部,也会发现该方法是空的,没有任何逻辑。
- Spring采用此种方式设计的目的
- 为了让用户根据自己的需要
- 重写initPropertySources()方法
- 并在其中实现自己的逻辑
复制代码 例- <strong>定义项目启动时,必须拥有属性 fileCodingType
- 那么我们就可以通过扩展initPropertySources()方法的方式
- 使系统必须拥有此属性
- public class MyClassPathXmlApplicationContext extends ClassPathXmlApplicationContext{
- protected void initPropertySources(){
- //添加验证要求
- getEnvironment().setRequiredProperties("fileCodingType");
- }
- }</strong>
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |