乌市泽哥 发表于 2022-8-26 21:33:49

initPropertySource()方法具有什么功能呢?

转自:
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>
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: initPropertySource()方法具有什么功能呢?