无法将属性值设置为Spring-web.xml

时间:2017-10-31 08:01:32

标签: java spring spring-mvc properties

我是一个上下文侦听器,我在这里加载了所有属性。我尝试在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

任何想法都将不胜感激。

1 个答案:

答案 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实质上表示传递的参数无效。