首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用jdbc.properties更改context.xml

用jdbc.properties更改context.xml
EN

Stack Overflow用户
提问于 2015-07-07 09:26:12
回答 2查看 794关注 0票数 1

我制作Spring,并使用DB中的jdbc.properties文件。在applicationContext.xml里我有这个

代码语言:javascript
复制
<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}" />

现在,我想从我的数据库中的属性中更改位置,现在我在tomcat中有了context.xml文件,在webapp中也有了元-INF中的context.xml文件。在context.xml中,我有:

代码语言:javascript
复制
<?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中将哪些内容更改为webapp,从context.xml中寻找属性,或者更好地如何从tomcat context.xml文件中放入jdbc.properties值?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-07 11:21:06

这就是JNDI进来的原因..。在Tomcat的conf目录中,context.xml文件添加:

代码语言:javascript
复制
 <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条目:

代码语言:javascript
复制
<jee:jndi-lookup id="dataSource"
                 jndi-name="jdbc/your_app_ds"
                 expected-type="javax.sql.DataSource"/>

通过这种方式,Spring将创建javax.sql.DataSource实现实例,并且您将通过dataSource id获得它。

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

代码语言:javascript
复制
xmlns:jee="http://www.springframework.org/schema/jee"

以及:

代码语言:javascript
复制
xsi:schemaLocation="http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee.xsd"
票数 1
EN

Stack Overflow用户

发布于 2015-07-07 12:17:30

你可以拥有一个有产权的豆

代码语言:javascript
复制
<!-- Load values for configuration placeholders, evaluated at startup only -->
<bean class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer">
    <property name="ignoreResourceNotFound" value="true" />
    <property name="location" value="file:${user.dir}/jdbc.properties" />
</bean>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31264706

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档