元素 location属性值笔记
程序员文章站
2022-06-08 22:06:44
...
前言
一般的spring框架都是用在web项目中,xml中的properties文件的配置一般都是classpath:db.properties的格式。但在非web项目中,需要将这些db.propperties文件独立放在一个conf文件夹中,那么就无法使用classpath:这种格式了。最近在部署一个项目中遇到经常会修改properties文件中配置属性的值,因此将部署包中的属性配置文件都提到一个固定目录,由于项目Spring的配置文件采用<context:property-placeholder/>元素引用这些properties配置文件,因此对 location属性的支持的文件位置做一下记录。
location属性值
1. location属性值classpath 与 classpath*
如:
.classpath可以加载整个classpath下,包括jar包里面的资源文件。
.classpath只会返回第一个匹配的资源,查找路径是优先在项目中存在资源文件,再查找jar包。
.资源文件名可包含通配符(如spring-*.xml,spring*.xml),如果根目录为"", 则classpath加载不到任何资源而classpath*则可以加载到classpath中可以匹配的目录中的资源,但是不能加载到jar包中的资源
2. location属性值file协议绝对路径
3.locationfile协议属性值环境变量
或
file后面的参数config.dir java的环境变量,可以在java -Dconfig.dir=c:/tomcat8来指定
结论
这样做的好处就是可以将一个jar包做成产品化的形式,否则配置文件放在jar包中,每次修改配置都需要重新修改jar包。
一般的spring框架都是用在web项目中,xml中的properties文件的配置一般都是classpath:db.properties的格式。但在非web项目中,需要将这些db.propperties文件独立放在一个conf文件夹中,那么就无法使用classpath:这种格式了。最近在部署一个项目中遇到经常会修改properties文件中配置属性的值,因此将部署包中的属性配置文件都提到一个固定目录,由于项目Spring的配置文件采用<context:property-placeholder/>元素引用这些properties配置文件,因此对 location属性的支持的文件位置做一下记录。
location属性值
1. location属性值classpath 与 classpath*
如:
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="configLocation" value="classpath:sqlMapConfig.xml"></property> <property name="mapperLocations" value="classpath*:mapper/**/*Mapper.xml"></property> </bean> <context:property-placeholder location="classpath:/jdbc.properties" />
.classpath可以加载整个classpath下,包括jar包里面的资源文件。
.classpath只会返回第一个匹配的资源,查找路径是优先在项目中存在资源文件,再查找jar包。
.资源文件名可包含通配符(如spring-*.xml,spring*.xml),如果根目录为"", 则classpath加载不到任何资源而classpath*则可以加载到classpath中可以匹配的目录中的资源,但是不能加载到jar包中的资源
2. location属性值file协议绝对路径
<property name="locations" value="file:c/tomcat8/conf/db.properties" />
3.locationfile协议属性值环境变量
<property name="locations" value="file:#{systemProperties['jdbc.properties']}" />
或
<bean id="configBean" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="location"> <value>file:${config.dir}/conf/db.properties</value> </property> </bean>
file后面的参数config.dir java的环境变量,可以在java -Dconfig.dir=c:/tomcat8来指定
结论
这样做的好处就是可以将一个jar包做成产品化的形式,否则配置文件放在jar包中,每次修改配置都需要重新修改jar包。