spring配置文件中util:properties和context:property-placeholder

/ 后端 / 无站内评论 / 231浏览

util:properties和context:property-placeholder标签都可以用来获取外部配置文件中的内容 
1、util:properties 
它是以声明bean方式来使用,创建了一个bean,下面使用的时候通过SpEL表达式#{}获取bean的属性。

<util:properties id="config" location="classpath:db.properties" />
<!-- 配置连接池 -->
<bean id="ds" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="#{config.driver}" />
<property name="url" value="#{config.url}" />
<property name="username" value="#{config.username}" />
<property name="password" value="#{config.password}" />
</bean>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

需要注意,这种方式需要在spring配置文件头部声明

xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.2.xsd"
  • 1
  • 2

注入javabean中,不需要 get set 方法,要注入的是整个 properties,那么应该写的是:

@Value("#{propertiesReader}")
public void setProps(Properties props) {
    this.props = props;
}

2、context:property-placeholder 
它是将配置文件加载至spring上下文中,然后通过${}取得值,常用于bean的属性上

<context:property-placeholder location="classpath:general.properties"/>
<!-- 配置Druid连接池 -->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
    <!-- 基本属性 driverClassName、url、user、password -->
    <property name="driverClassName" value="${jdbc.driverClassName}"/>
    <property name="url" value="${jdbc.url}" />
    <property name="username" value="${jdbc.username}" />
    <property name="password" value="${jdbc.password}" />
</bean>
内容整理自互联网:
http://blog.csdn.net/n447194252/article/details/77498916
https://segmentfault.com/q/1010000008393361
召唤蕾姆
琼ICP备18000156号

鄂公网安备 42011502000211号