spring源码 setConfigLocations方法分析
说明:
setConfigLocations主要包含两个功能展开:创建环境对象ConfigurableEnvironment 、处理ClassPathXmlApplicationContext传入的字符串中的占位符;
第一个:. 环境对象ConfigurableEnvironment中包含了当前JVM的profile配置信息、环境变量、 Java进程变量;
/** System environment property source name: {@value}. */
public static final String SYSTEM_ENVIRONMENT_PROPERTY_SOURCE_NAME = "systemEnvironment";
/** JVM system properties property source name: {@value}. */
public static final String SYSTEM_PROPERTIES_PROPERTY_SOURCE_NAME = "systemProperties";
第二个:. 处理占位符的关键是ConfigurableEnvironment、PropertyResolver、PropertyPlaceholderHelper之间的配合:
为了更好说明操作,不一例子说明的都是扯蛋,下面以例子说明:
例子概述:整个应用例子为通过spring 创建测试类为入口读取配置信息,spring 通过 ConfigurableEnvironment、PropertyResolver、PropertyPlaceholderHelper 三个之间配合处理占位符操作。
例子中设计的文件包含: 连接数据配置参数文件 jdbc.properties、配置类Appconfig 文件、测试类 TestUserService(程序入口)
1、TestUserService 代码为
2、配置类Appconfig.java
3、配置文件
【接下来进行debug操作】