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!