首先我们来讨论一个问题为什么要使用JNDI来连接数据源?好处有那些?
JNDI(Java Naming and Directory Interface,Java命名和目录接口)
优点:1.包含了大量的命名和目录服务,使用通用接口来访问不同种类的服务;
使用JNDI连接数据源首先我们的先配置JNDI的一些数据下面是步骤:
第一步:修改tomcat下conf中的server.xml文件(也可以放到Context.xml中,这样其实是为每一个应用提供了数据源,下面的配置是为特定应用配置数据源)
用文本工具打开此文件(我的tomcat版本是6.0)
找到标签,向其中加入以下配置
/SaleSys" docBase="
SaleSys" debug="5" reloadable="true" crossContext="true">
解释:path="/SaleSys " –你的应用
docBase="SaleSys " –你应用的根目录
name=" jdbc/jboa " 注册的jndi名字
第二步:在Spring的配置文件applicationContext.xml 中找到
...(前提是在添加hibernate的时候根据向导需要把hibernate的配置文件整合到Spring的配置文件中,否者找不到此注入信息),把此中的class改成
class="org.springframework.jndi.JndiObjectFactoryBean",然后把中原来的配置全部删掉,注入一条属性即可,这里要
注意的是 java:comp/env/ 是固定写法,jdbc/jboa是注册的jndi名字(名字一定要和tomcat中配置中上面加入的代码片段中的,做到这里JNDI的配置基本上就结束了。
接下来我来说一个错误,
Caused by: java.lang.IllegalArgumentException : 'sessionFactory' or 'hibernateTemplate' is required
这个错误一看就知道是Spring的配置文件里面出了问题,很多新手都容易犯的一个错误,那就是在写
dao层的时候会略掉里面要注入一个属性
这个代码加上就解决了。
希望能给大家带来帮助解决问题。