Należy skonfigurować właściwości połączenia z bazą danych w pliku server.xml lub context.xml

Próbuję skonfigurować właściwości połączenia z bazą danych za pomocą JNDI dla aplikacji internetowej Spring.

Rozważam dwa podejścia, jak poniżej:

Podejście 1:

W konfiguracji wiosennej możesz mieć coś w rodzaju:

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

Następnie w twojej aplikacji internetowej /META-INF/context.xml powinieneś mieć coś podobnego:

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

W Twoim pliku web.xml powinieneś coś takiego:

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


Podejście 2:

Skonfiguruj w kontekście Spring w następujący sposób:

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

Możesz zadeklarować zasób JNDI w serwerze server.xml Tomcata, używając czegoś takiego:

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

I odwołaj się do zasobu JNDI z kontekstu WWW Tomcata.xml w następujący sposób:

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


Moje pytanie brzmi: gdzie jest najlepsze miejsce do przechowywania właściwości bazy danych? Powinny zostać umieszczoneserver.xml lubcontext.xml?

Ponadto, jeśli mam 2 bazy danych, czy powinienem użyć dwóch konfiguracji?

Czy najlepiej jest umieścić je bezpośrednio w pliku server.xml lub context.xml? Czy muszę skonfigurować konsolę Tomcat Manager GUI?

Dzięki!

questionAnswers(5)

yourAnswerToTheQuestion