提供配置信息的类。
import javax.sql.DataSource;
public class SysConfig {
private int sessionTimeout;
private int maxTabPageNum;
private DataSource dataSource;
public void initFromDB(){
//从数据库中获取属性配置值
this.sessionTimeout = 30;
this.maxTabPageNum = 10;
}
public int getSessionTimeout() {
return sessionTimeout;
}
public int getMaxTabPageNum() {
return maxTabPageNum;
}
public void setDataSource(DataSource dataSource) {
this.dataSource = dataSource;
}
}
引用bean的属性值
<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<context:property-placeholder
location="classpath:com/baobaotao/placeholder/jdbc.properties"/>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close"
p:driverClassName="${driverClassName}"
p:url="${url}"
p:username="${userName}"
p:password="${password}"/>
<bean id="sysConfig" class="com.baobaotao.beanprop.SysConfig"
init-method="initFromDB"
p:dataSource-ref="dataSource"/>
<bean class="com.baobaotao.beanprop.ApplicationManager"
p:maxTabPageNum="#{sysConfig.maxTabPageNum}"
p:sessionTimeout="#{sysConfig.sessionTimeout}"/>
</beans>
sysConfig配置文件先是初始化相应的bean,然后再被后面的Bean调用#{beanName.beanProperty}。
对于基于注解配置bean的方式,也有类似的操作
@Value("#{sysConfig.sessionTimeOut}")
private int timeOut;