JNDIについて(とおまけ)
ものっそいひさびさにJavaの話。
それもいまさら聞けない系の。
JDBC利用時に定番のjava.naming.Context.lookupによるDataSourceの取得で、"java:comp/env/[データソース定義名]"とか決め事のように書いていたけど、その"java:comp/env/"ってなんやねん、と。
java:comp/env/"で始まる記述のしかたは、JNDI「ENC (Environment Naming Context:環境ネーミング・コンテキスト) 名」と呼ばれ、lookup する側の Web アプリケーション (*.war) や EJB-JAR (*.jar) 内でのみ有効なネームスペースに定義されます。
へえ~。
あーほんじゃ昔よく見たClass.forNameでJDBCドライバ指定するあれは?
各ベンダの JDBC Driver は java.sql.Driver を実装している必要があり、その実装クラスは static initializer で java.sql.DriverManager.registerDriver(java.sql.Driver) を使って登録している。
Class.forName -> static initializer -> DriverManager.registerDriver って流れ。あとは DriverManager を経由して各 Driver にアクセスして使用する。
ほーほー!
何でも決め事だからと思わずに調べるのは大事ですな。