我是一个上下文侦听器,我在这里加载了所有属性。我尝试在spring-web.xml中设置这些属性,但它会引发异常
因为它无法获取并将属性设置为xml
这是我的spring-web.xml
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.ibm.as400.access.AS400JDBCDriver" />
<property name="url" value="jdbc:as400://localhost/BB" />
<property name="username" value="{as400.username}" />
<property name="password" value="{as400.password}" />
</bean>
我的加载属性类
public class LoadProperties implements ServletContextListener {
private static Properties properties = null;
private static Logger logger = Logger.getLogger(LoadProperties .class);
@Override
public void contextDestroyed(ServletContextEvent arg0) { }
@Override
public void contextInitialized(ServletContextEvent arg0) {
properties = BBUtil.getProperties("datasource-cfg.properties");
for (String prop : properties.stringPropertyNames()) {
logger.info("Property Loaded :"+properties.getProperty(prop));
if (System.getProperty(prop) == null) {
System.setProperty(prop, properties.getProperty(prop));
}
}
}
}
此类正在执行并在System。
下设置属性这是我的属性文件
as400.username=ROOT
as400.password=ROOT
如何将值设置为spring-web.xml
任何想法都将不胜感激。
答案 0 :(得分:0)
我们使用context:property-placeholder
<context:property-placeholder location="classpath:db.properties" />
<bean id="datasource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="dbHost" value="${db.url}"/>
<property name="dbPort" value="${db.number}"/>
<property name="dbService" value="${db.name}"/>
<property name="dbUrl" value="${db.user}"/>
<property name="dbPassword" value="${db.password}"/>
</bean>
也可以使用http:,file:
等前缀加载属性文件占位符应与$符号一起使用,如下所示
<property name="username" value="${as400.username}" />
<property name="password" value="${as400.password}" />
ExtendedIllegalArgumentException实质上表示传递的参数无效。