gpt4 book ai didi

java - 使用 context.xml 更改 jdbc.properties

转载 作者:行者123 更新时间:2023-11-28 22:18:50 25 4
gpt4 key购买 nike

我制作 Spring webapp 并使用来自数据库的 jdbc.properties 文件。在 applicationContext.xml 我有这个

<context:property-placeholder location="classpath:cfg/properties/jdbc.properties"/>

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"
p:driverClassName="${jdbc.driverClassName}" p:url="${jdbc.databaseurl}" p:username="${jdbc.username}"
p:password="${jdbc.password}" />

现在,我想从我的 DB 属性更改位置,现在我在 tomcat 中有 context.xml 文件,在 webapp 的 META-INF 中也有 context.xml 。 在 context.xml 我有:

<?xml version='1.0' encoding='utf-8'?>
<Context path="/webapp" docBase="../webapp/webapp.war" displayName="webapp">
<Environment name="jdbc.driverClassName" override="false" type="java.lang.String" value="org.postgresql.Driver"/>
<Environment name="jdbc.dialect" override="false" type="java.lang.String" value="..."/>
<Environment name="jdbc.databaseurl" override="false" type="java.lang.String" value="..."/>
<Environment name="jdbc.username" override="false" type="java.lang.String" value=""/>
<Environment name="jdbc.password" override="false" type="java.lang.String" value=""/>
</Context>

我需要将 applicationContext 更改为从 context.xml 查找属性的 webapp,或者更好的是如何从 tomcat context.xml 文件中放入 jdbc.properties 值?

最佳答案

那就是JNDI进来... 在你的 Tomcat 的 conf 目录中,context.xml 文件添加:

 <Resource name="jdbc/your_app_ds"
auth="Container"
type="javax.sql.DataSource"
username="username"
password="password"
driverClassName="org.postgresql.Driver"
maxActive="100"
maxIdle="10"
validationQuery="select 1"
minEvictableIdleTimeMillis="300000"
timeBetweenEvictionRunsMillis="100000"
testWhileIdle="true"
url="db_url"/>

然后在您的 Spring 文件中,您需要做的就是像这样定义 JNDI 条目:

<jee:jndi-lookup id="dataSource"
jndi-name="jdbc/your_app_ds"
expected-type="javax.sql.DataSource"/>

这样 Spring 将创建 javax.sql.DataSource 实现实例,您将通过 dataSource id 获取它。

只是不要忘记为 jee 前缀指定模式位置:

xmlns:jee="http://www.springframework.org/schema/jee"

和:

xsi:schemaLocation="http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee.xsd"

关于java - 使用 context.xml 更改 jdbc.properties,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31264706/

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