SSH框架的构建步骤:
SSH框架的构建在使用MyEclipse进行导入时必须按照Spring-->Hibernate-->Struts的顺序。
在导入Spring之前最好通过MyEclipse插件建立好DBdriver。
默认的Spring会使用dbcp来管理数据源。
在导入Hibernate时,要注意选择用Spring来管理hibernate配置,而不要使用单独的hibernate.cfg.xml。这样在导入时可以选择建立好的DBdriver,会自动在applicationContext.xml中配置好dataSource和sessionFactory。
Spring中需要使用Hibernate的话,可以直接继承HibernateDaoSupport,继承完之后就能通过this.getSession()直接获取到session对象。
关键点配置:
applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"> </property> <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"> </property> <property name="username" value="scott"></property> <property name="password" value="tiger"></property> </bean> <!-- 相当于hibernate中的hibernate.cfg.xml中的配置内容 --> <bean id="SessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean" destroy-method="close"> <property name="dataSource"> <ref bean="dataSource" /> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect"> org.hibernate.dialect.Oracle9Dialect </prop> </props> </property> <!-- 数据库表与VO类的关联配置文件 --> <property name="mappingResources"> <list> <value>vo/Person.hbm.xml</value> </list> </property> </bean> <!-- 向该类注入了sessionFacory --> <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate"> <property name="sessionFactory"> <ref bean="SessionFactory" /> </property> </bean> <!-- 向实现类注入hibernateTemplate --> <bean id="persondao" class="dao.PersonDao" abstract="true"></bean> <bean id="persondaoimpl" class="dao.impl.PersonDaoImpl" parent="persondao"> <property name="hibernateTemplate"> <ref bean="hibernateTemplate" /> </property> </bean> <!-- 与struts中的action注入业务实现类 --> <bean name="/person" class="com.yourcompany.struts.action.PersonAction"> <property name="personDao"> <ref bean="persondaoimpl" /> </property> </bean> </beans>
struts-config.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd"> <struts-config> <data-sources /> <form-beans> <form-bean name="personForm" type="org.apache.struts.validator.DynaValidatorForm"> <form-property name="password" type="java.lang.String" /> <form-property name="name" type="java.lang.String" /> </form-bean> </form-beans> <global-exceptions /> <global-forwards /> <action-mappings> <action attribute="personForm" input="/form/person.jsp" name="personForm" parameter="status" path="/person" scope="request" type="com.yourcompany.struts.action.PersonAction" validate="true"> <forward name="suc" path="/login.jsp"></forward> </action> </action-mappings> <!-- 要实现与Spring的关联,需要配置该控制器 --> <controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor"> </controller> <message-resources parameter="com.yourcompany.struts.ApplicationResources" /> <plug-in className="org.apache.struts.validator.ValidatorPlugIn"> <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" /> </plug-in> <!-- 要实现与Spring的关联,需要配置该插件 --> <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"> <set-property property="contextConfigLocation" value="/WEB-INF/classes/applicationContext.xml" /> </plug-in> </struts-config>
web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <!-- 指定WEB容器加载Spring主配置位置 --> <context-param> <param-name>contextConfigLocation</param-name> <param-value> /WEB_INF/classes/applicationContext.xml </param-value> </context-param> <!-- 指定WEB容器加载Spring --> <servlet> <servlet-name>context</servlet-name> <servlet-class> org.springframework.web.context.ContextLoaderServlet </servlet-class> <load-on-startup>1</load-on-startup> </servlet> <!-- 指定WEB容器加载Struts --> <servlet> <servlet-name>action</servlet-name> <servlet-class> org.apache.struts.action.ActionServlet </servlet-class> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts-config.xml</param-value> </init-param> <init-param> <param-name>debug</param-name> <param-value>3</param-value> </init-param> <init-param> <param-name>detail</param-name> <param-value>3</param-value> </init-param> <load-on-startup>0</load-on-startup> </servlet> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
Struts2.1.6 + Spring2.5.6 + Hibernate3.3.2所需jar包一览
jar包名称
所在位置
说明
antlr-2.7.6.jar
hibernate/lib/required
解析HQL
aspectjrt
spring/lib/aspectj
AOP
aspectjweaver
..
AOP
cglib-nodep-2.1_3.jar
spring/lib/cglib
代理,二进制增强
common-annotations.jar
spring/lib/j2ee
@Resource
commons-collections-3.1.jar
hibernate/lib/required
集合框架
commons-fileupload-1.2.1.jar
struts/lib
struts
commons-io-1.3.2
struts/lib
struts
commons-logging-1.1.1
单独下载,删除1.0.4(struts/lib)
struts
spring
dom4j-1.6.1.jar
hibernate/required
解析xml
ejb3-persistence
hibernate-annotation/lib
@Entity
freemarker-2.3.13
struts/lib
struts
hibernate3.jar
hibernate
hibernate-annotations
hibernate-annotation/
hibernate-common-annotations
hibernate-annotation/lib
javassist-3.9.0.GA.jar
hiberante/lib/required
hibernate
jta-1.1.jar
..
hibernate transaction
junit4.5
mysql-
ognl-2.6.11.jar
struts/lib
slf4j-api-1.5.8.jar
hibernate/lib/required
hibernate-log
slf4j-nop-1.5.8.jar
hibernate/lib/required
spring.jar
spring/dist
struts2-core-2.1.6.jar
struts/lib
xwork-2.1.2.jar
struts/lib
struts2
commons-dbcp
spring/lib/jarkata-commons
commons-pool.jar
..
struts2-spring-plugin-2.1.6.jar
struts/lib