作者:mkmkunming | 来源:互联网 | 2017-11-03 11:50
最近在做一个大学的校园卡的支付系统的二次开发,拿到源码后,大致看了下代码,比较简单,不是太复杂,数据库是oracle10G的,拿到数据文件后,导入数据很顺利。但是当我像平常一样准备修改数据库的配置文件时,发现是这样写的:transactionManagertypeJ
最近在做一个大学的校园卡的支付系统的二次开发,拿到源码后,大致看了下代码,比较简单,不是太复杂,数据库是oracle 10G的,拿到数据文件后,导入数据很顺利。但是当我像平常一样准备修改数据库的配置文件时,发现是这样写的:
- <transactionManager type="JDBC" >
- "JNDI">
- "DataSource" value="java:comp/env/jdbc/nfcDataSource"/>
-
-
采用JNDI的方式获取数据源,但是具体的配置数据库在哪配的了,以开始没有想到tomcat的content.xml文件里面配置的,在网上找了下,发现说是在content.xml里面,我在服务器上看了下,果然content.xml里面是这样配置滴:
class="html" name="code">"jdbc/nfcDataSource" auth="Container"
- type="javax.sql.DataSource" driverClassName="oracle.jdbc.driver.OracleDriver"
- url="jdbc:oracle:thin:@192.168.0.1:1521:tt"
- username="ttt" password="ttt" maxActive="50" maxIdle="10" maxWait="-1"/>
呵呵,至此,又知道了一种新的数据源的配置方式
以下是在网上找到的关于java:comp/env的简单说明:
- *************************说明java:comp/env***************************
- java:comp/env 是环境命名上下文(environment naming context(ENC)),
- 是在EJB规范1.1以后引入的,引入这个是为了解决原来JNDI查找所引起的冲突问题,也是为了提高EJB或者J2EE应用的移植性。
- ENC是一个引用,引用是用于定位企业应用程序的外部资源的逻辑名。引用是在应用程序部署描述符文件中定义的。在部署时,引用被绑定到目标可操作环境中资源的物理位置(JNDI名)。
- 使用ENC是把对其它资源的JNDI查找的硬编码解脱出来,通过配置这个引用可以在不修改代码的情况下,将引用指向不同的EJB(JNDI)。
- 在J2EE中的引用常用的有: ---------JDBC 数据源引用在java:comp/env/jdbc 子上下文中声明 ---------JMS 连接工厂在java:comp/env/jms 子上下文中声明