klenkes74によって参照されるSimple-JNDIバージョンは、現在活発に開発されていません。いくつかの問題が発生したため、フォークし、バグ修正を行い、いくつかの新機能を実装しました。依存性注入よりもサービスロケーターパターンを好むため、テストだけでなく本番環境でも古いバージョンをすでに使用しましたが、最近は後者の方が流行しています。
Simple-JNDIを使用して、データソースまたは接続プールを宣言的に定義し、それをJNDIコンテキストにバインドすることが簡単にできます。
クラスパスでjndi.propertiesファイルを定義します。
java.naming.factory.initial=org.osjava.sj.SimpleContextFactory
org.osjava.sj.root=[absolute_or_relative_path_to_a_property_file]
プロパティファイルは次のようになります。
type=javax.sql.DataSource
driver=org.gjt.mm.mysql.Driver
url=jdbc:mysql://localhost/testdb
user=testuser
password=testing
これで、コード内から次のようにデータソースにアクセスできます。
InitialContext ctxt = new InitialContext();
DataSource ds = (DataSource) ctxt.lookup("name_of_your_datasource");
詳細については、https://github.com/h-thurow/Simple-JNDIを参照してください。