java – 应该在server.xml还是context.xml中设置数据库连接属性

我试图使用JNDI为Spring Web应用程序设置数据库连接属性。

我正在考虑两种方法如下:

方法1:

在你的Spring配置中,你可能会有:

<jee:jndi-lookup id="dataSource" jndi-name="java:comp/env/jdbc/facs"/>

然后在您的webapp /META-INF/context.xml文件中,您应该也有类似的东西:

<?xml version='1.0' encoding='utf-8'?>

<!-- antiResourceLocking="true" -->
<Context path="/podd-apn"
         reloadable="true"
         cachingAllowed="false"
         antiResourceLocking="true"
         >

  <Resource name="jdbc/facs"              
            type="javax.sql.DataSource" username="${database.username}" password="${database.password}"
            driverClassName="org.postgresql.Driver" 
            url="${database.url}"
            maxActive="8" maxIdle="4"
            global="jdbc/facs" 
            />


</Context>

在你的web.xml中你应该像:

<!-- JNDI -->
  <resource-ref>
    <description>FACs Datasource</description>
    <res-ref-name>jdbc/facs</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
  </resource-ref> 

  方法2:

在Spring上下文中的设置如下:

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

您可以在Tomcat的server.xml中声明JNDI资源,如下所示:

<GlobalNamingResources>
  <Resource name="jdbc/DatabaseName" auth="Container" type="javax.sql.DataSource"
              username="dbUsername" password="dbPasswd"
              url="jdbc:postgresql://localhost/dbname"
              driverClassName="org.postgresql.Driver"
              initialSize="5" maxWait="5000"
              maxActive="120" maxIdle="5"
              validationQuery="select 1"
              poolPreparedStatements="true"/>
</GlobalNamingResources/>

并从Tomcat的web context.xml引用JNDI资源,如下所示:

<ResourceLink name="jdbc/DatabaseName"
   global="jdbc/DatabaseName"
   type="javax.sql.DataSource"/>

我的问题是哪里是最好的地方保持数据库属性?应该将它们放在server.xml还是context.xml中?

此外,如果我有2个数据库,我应该使用两个配置?

另外,最佳做法是直接将它们放在server.xml或context.xml中?还是需要通过Tomcat Manager GUI控制台进行配置?

谢谢!

我喜欢方法2(把一切(不仅是配置中的一些属性),

但是不要将它们放在全局server.xml或全局context.xml中,而应将其放在tomcat中特定于应用程序的context.xml.default YOUR_APP.xml中。

YOUR_APP.xml文件位于$ catalinaHome / conf /< engine> /< host> (例如conf / Catalina / localhost / YOUR_APP.xml)。

应用程序特定的YOUR_APP.xml中的配置仅适用于特定应用程序。

http://stackoverflow.com/questions/15064260/should-you-set-up-database-connection-properties-in-server-xml-or-context-xml

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:java – 应该在server.xml还是context.xml中设置数据库连接属性