簡體   English   中英

使用context.xml更改jdbc.properties

[英]Change jdbc.properties with context.xml

我制作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}" />

現在,我想從數據庫的屬性中更改位置,現在我在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"

你可以有一個屬性持有人豆像

<!-- 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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM