以下是這個組合成功運作所需注意的地方。
1.系統建置環境如下
AP Server : Tomcat 5.5.x
Database : Oracle 10g
Framework : Spring 1.2.x + Hibernate 3.x
2.相關重要修改設定如下
2.1 首先,要利用Tomcat的DBCP Connection pool功能,所以必需先改Tomcat裡面的Server.xml設定檔,加入下面藍字所示的相關設定
2.2 接下來修改web.xml設定檔藍字所示內容
2.3 在/WEB-INF目錄裡面,增加beans-config.xml這個Srping設定檔,修改藍字所示內容
2.4 在/WEB-INF目錄裡面,增加log4j.properties這個log4j設定檔
3.大功告成...寫個測試的JSP網頁試試看吧...

...以下是我測試用的JSP,請自行修改以符合實務上需求
1.系統建置環境如下
AP Server : Tomcat 5.5.x
Database : Oracle 10g
Framework : Spring 1.2.x + Hibernate 3.x
2.相關重要修改設定如下
2.1 首先,要利用Tomcat的DBCP Connection pool功能,所以必需先改Tomcat裡面的Server.xml設定檔,加入下面藍字所示的相關設定
1 |
<Host>
...中略...
<Context ...中略...>
<!-- Tomcat5.5的DBCP設定方式寫法與之前版本完全不同 -->
<Resource
name="jdbc/scott"
auth="Container"
factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@localhost:1521:orcl"
username="scott"
password="tiger"
maxIdle="10"
maxWait="1000"
maxActive="100"/>
</Context>
</Host>
|
2.2 接下來修改web.xml設定檔藍字所示內容
1 |
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<!-- 指定log4j設定檔位置 -->
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/log4j.properties</param-value>
</context-param>
<!-- 指定spring設定檔位置 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/beans-config.xml</param-value>
</context-param>
<!-- 一定要在ContextLoaderListener設定之前加上Log4jConfigListener設定,如此一來ContextLoaderListener才可以正常運作 -->
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- 指定此項Filter可使Spring取回的DomainObject在JSP(View層)作完所有的事情後,才將Hiberante Session給Close -->
<filter>
<filter-name>hibernateFilter</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>hibernateFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 指定JNDI JDBC DataSource -->
<resource-ref>
<description>JNDI JDBC DataSource</description>
<res-ref-name>jdbc/scott</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
...中略...
</web-app>
|
2.3 在/WEB-INF目錄裡面,增加beans-config.xml這個Srping設定檔,修改藍字所示內容
1 |
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
...中略...
<!-- 利用JNDI的方式連結到DataSource -->
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<!-- 不可省略"java:comp/env/"字串,否則會出現異常 -->
<value>java:comp/env/jdbc/scott</value>
</property>
</bean>
...中略...
</beans>
|
2.4 在/WEB-INF目錄裡面,增加log4j.properties這個log4j設定檔
1 |
#這是我用的設定檔,請自行修改成以符合實務上需求 log4j.rootLogger=info,consoleAppender log4j.appender.consoleAppender=org.apache.log4j.ConsoleAppender log4j.appender.consoleAppender.layout=org.apache.log4j.PatternLayout log4j.appender.consoleAppender.layout.ConversionPattern=%d [%t] %-5p %c - %m%n |
3.大功告成...寫個測試的JSP網頁試試看吧...
1 |
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ page import="org.springframework.web.context.WebApplicationContext"%>
<%@ page import="org.springframework.web.context.support.WebApplicationContextUtils"%>
<%@ page import="com.db.table.Emp"%>
<%@ page import="com.db.dao.IEmpDAO;"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Spring Test</title>
</head>
<body>
<%
WebApplicationContext context = WebApplicationContextUtils.getRequiredWebApplicationContext(getServletContext());
IEmpDAO empDAO = (IEmpDAO)context.getBean("empDAOImpl");
Emp emp = empDAO.find(new Short((short)7369));
out.println("Ename: " + emp.getEname() + "<br>");
out.println("Dname: " + emp.getDept().getDname() + "<br>");
%>
</body>
</html>
|
本文详细介绍如何在Tomcat5.5.x环境下配置Spring1.2.x与Hibernate3.x进行整合,包括设置数据库连接池、调整web.xml及Server.xml文件等关键步骤。

被折叠的 条评论
为什么被折叠?



