是否可以在context.xml中使用占位符

问题描述

使用Spring的PlaceholderPropertyConfigurer(仅替换Spring上下文中的值)是不可能的。

但是,可以在使用替换任务的构建过程中使用Ant。就像是:

<replace file="META-INF/context.xml" replacefilterfile="my.properties" />

请注意,以上内容以属性名称作为要替换的标记-例如,您需要在context.xml中使用“ jdbc.url”而不是“ $ {jdbc.url}”。如果绝对需要后者,则可以通过将要替换的标记明确命名为嵌套<replacefilter>元素来实现。

解决方法

我正在使用Spring和struts,并且在“ /META-INF/context.xml”中具有以下条目

<Context cachingAllowed="false" useHttpOnly="true">
<Resource name="jdbc/xxx" auth="Container" type="javax.sql.DataSource"
           factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
           maxActive="100" maxIdle="30" maxWait="10000"
           username="xxxxx" password="xxxxx"
           driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
           url="jdbc:sqlserver://xxx:1433;databaseName=xxx;"/>
</Context>

是否可以通过以下方式实现,

<Context cachingAllowed="false" useHttpOnly="true">
   <Resource name="jdbc/xxx" auth="Container" type="javax.sql.DataSource"
               factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
               maxActive="100" maxIdle="30" maxWait="10000"
               username="${jdbc.username}" password="${jdbc.pwd}"
               driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
               url="${jdbc.url}"/>
 </Context>

我的applicationContext.xml具有以下内容,

<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiName" value="java:comp/env/jdbc/xxx" />
</bean>

我想从属性文件中选取jdbc.username和jdbc.pwd的值。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...