gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-11-01 03:30:26 24 4
gpt4 key购买 nike

我正在使用 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 的值。

最佳答案

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

但是,可以使用 Ant在构建过程中使用 Replace任务。像这样的东西:

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

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

关于java - 是否可以在 context.xml 中使用占位符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1541731/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com