版权声明:本文章是作者辛勤书写的成果,如需转载,请与作者联系,并保留作者信息以及原文链接,谢谢~~ https://blog.csdn.net/blueheart20/article/details/88532565
配置文件的读取
在Spring应用中,会存在大量的配置文件设置,这些设置需要通过一个简便的方式被读取到系统中,被系统读取使用。
配置信息定义
假定把配置信息放入config.properties文件里面,其内容以键值对的方式出现,内容如下:
key1=val1
name=zhangsan
password=1234
在Spring应用中,将如何读取配置信息呢?
@PropertySource和@Value
基于@PropertySource在配置类中读取配置信息,基于@Value直接提取特定键值对。示例如下:
@Configuration
@PropertySoruce("classpath:config.properties")
public class AppConfig2 {
@Value("${key1}")
private String key1;
@Value("${name}")
private String name;
@Value("${password}")
private String password;
}
这样就可以直接读取配置信息了。
基于@ImportSource和@Value
首先定义一个Spring的配置文件,spring-bean.xml:
<beans>
<context:annotation-config/>
<context:property-placeholder location="classpath:/com/acme/jdbc.properties"/>
<!-- 在Spring配置文件中直接创建Bean-->
<bean class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
</beans>
其中声明了引入jdbc的配置文件信息, 并在配置文件中直接创建了Bean.
基于ImportSource读取配置信息:
@Configuration
@ImportResource("classpath:spring-bean.xml")
public class AppConfig{
@Value("${jdbc.url}")
private String url;
@Value("${jdbc.username}")
private String username;
@Value("${jdbc.password}")
private String password;
@Bean
public DataSource dataSource() {
return new DriverManagerDataSource(url,username,password);
}
}
其本质上是通过加载Spring的配置文件信息,然后在配置文件中加载配置信息,既可以直接在配置文件中创建对应的实例。
也可以读取出相应的配置信息之后,在Java Config Bean中进行实例对象的创建。
总结
两种方式。 @ImportSource是利用Spring 配置文件中的placeholder机制来进行配置文件的替换以及加载。相对而言,@PropertySource方式更为简洁易用。