由Petstore想到JNDI的一种用法

由Petstore想到JNDI的一种用法

昨晚有幸进入央视演播1号大厅欣赏了梦想中国9进6的现场直播,的确精彩,比看电视感觉好多了。只是持续时间太长,从7点多一直到11点。搞得今天上班还困困的,好了,闲话少说。

我们在用JNDI来获取数据源已经不是什么新鲜事了,EJB当中的更是少不了这个东西。在看petstore时由JNDINames这个类还发现了原来JNDI所指的资源工厂不仅仅局限于以上这两种类型,我们自己定义的一些工厂类其实也可以指定,其实这也是不难想到的,但在实践过程中却还从未考虑到过。过程也不复杂。就拿petstore为例,只需在web-inf当中加入:

1 < env-entry >
2      < description > This Entry Provides the name for the CatalogDAO Implementation Class so the Fast Lane Pattern may be used </ description >
3      < env-entry-name > param/CatalogDAOClass </ env-entry-name >
4      < env-entry-type > java.lang.String </ env-entry-type >
5      < env-entry-value > com.sun.j2ee.blueprints.catalog.dao.GenericCatalogDAO </ env-entry-value >
6 </ env-entry >
7


然后在CatalogDAOFactory类当中轻松几句。

InitialContext ic  =   new  InitialContext();

String className 
=  (String) ic.lookup(JNDINames.CATALOG_DAO_CLASS);

catDao 
=  (CatalogDAO) Class.forName(className).newInstance();


便获得了工厂类的具体实例GenericCatalogDAO。这样岂不也来得痛快!



你可能感兴趣的:(由Petstore想到JNDI的一种用法)