Jika menggunakan konfigurasi berbasis skema Spring, setup dalam konteks Spring seperti ini:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:jee="http://www.springframework.org/schema/jee" xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee.xsd">
...
<jee:jndi-lookup id="dbDataSource"
jndi-name="jdbc/DatabaseName"
expected-type="javax.sql.DataSource" />
Atau, setup menggunakan konfigurasi kacang sederhana seperti ini:
<bean id="DatabaseName" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:comp/env/jdbc/DatabaseName"/>
</bean>
Anda dapat mendeklarasikan sumber daya JNDI di server tomcat.xml menggunakan sesuatu seperti ini:
<GlobalNamingResources>
<Resource name="jdbc/DatabaseName"
auth="Container"
type="javax.sql.DataSource"
username="dbUser"
password="dbPassword"
url="jdbc:postgresql://localhost/dbname"
driverClassName="org.postgresql.Driver"
initialSize="20"
maxWaitMillis="15000"
maxTotal="75"
maxIdle="20"
maxAge="7200000"
testOnBorrow="true"
validationQuery="select 1"
/>
</GlobalNamingResources>
Dan referensi sumber daya JNDI dari konteks web Tomcat.xml seperti ini:
<ResourceLink name="jdbc/DatabaseName"
global="jdbc/DatabaseName"
type="javax.sql.DataSource"/>
Dokumentasi rujukan:
Sunting: Jawaban ini telah diperbarui untuk Tomcat 8 dan Spring 4. Ada beberapa perubahan nama properti untuk penyiapan kumpulan sumber data sumber default Tomcat .
Dengan mekanisme JavaConfig Spring, Anda dapat melakukannya seperti:
sumber
Dengan asumsi Anda memiliki definisi sumber data "sampleDS" di dalam konfigurasi kucing jantan, Anda dapat menambahkan baris-baris berikut
applicationContext.xml
untuk mengakses sumber data menggunakan JNDI.Anda harus menentukan lokasi namespace dan skema untuk
jee
awalan menggunakan:sumber
Dokumentasi: C.2.3.1
<jee:jndi-lookup/>
(sederhana)Contoh:
Anda hanya perlu mencari tahu apa nama JNDI yang digunakan oleh server aplikasi Anda. Ini sepenuhnya khusus untuk server, lihat dokumen di server Anda untuk mengetahui caranya.
Ingatlah untuk mendeklarasikan
jee
namespace di bagian atas file kacang Anda, seperti yang dijelaskan dalam C.2.3 Skema jee .sumber
Fitur lain: alih-alih server.xml, Anda dapat menambahkan tag "Resource" di
aplikasi_anda / META-INF / Context.xml (sesuai dengan dokumen kucing jantan ) seperti ini:
sumber
Menurut halaman Apache Tomcat 7 JNDI Datasource BAGAIMANA harus ada konfigurasi sumber daya di web.xml:
Itu bekerja untuk saya
sumber
Di kelas musim semi Anda, Anda bisa menyuntikkan kacang beranotasi seperti
dan Anda menambahkan ini di context.xml Anda
Anda dapat mendeklarasikan sumber daya JNDI di tomcat's server.xml menggunakan
kembali ke context.xml de spring tambahkan ini
jika, seperti contoh ini Anda menyuntikkan koneksi ke database, pastikan bahwa toples MySQL ada di direktori tomcat lib, jika tidak tomcat tidak akan dapat membuat kumpulan koneksi database MySQL.
sumber
Saya menemukan solusi ini sangat membantu dalam cara yang bersih untuk menghapus konfigurasi xml sepenuhnya.
Silakan periksa konfigurasi db ini menggunakan JNDI dan kerangka kerja pegas. http://www.unotions.com/design/how-to-create-oracleothersql-db-configuration-using-spring-and-maven/
Pada artikel ini, dijelaskan bagaimana mudahnya membuat konfigurasi db berdasarkan konfigurasi database jndi (db / test). setelah Anda selesai dengan konfigurasi maka semua repositori db diambil menggunakan jndi ini. Saya menemukan berguna. Jika @Pierre memiliki masalah dengan ini, beri tahu saya. Ini solusi lengkap untuk menulis konfigurasi db.
sumber