MyEclipse9整合struts2.1+hibernate3.3+spring3.0
一、创建一个web project
二、引入hibernate3.3
1、将jar包放到lib目录下
2、以下两个步骤可以不引入hibernate.cfg.xml,因为最后都要交给spring管理,但引入也无妨,最后删掉就可以,配置spring的applicationContext.xml时可参照参数。
3、不需要引入工具类
三、引入spring3.0
1、添加的lib包有:Spring 2.0 AOP Libraries 、Spring 2.0 Core Libraries 、Spring 2.0 Persistence Core Libraries 、Spring 2.0 Persistence JDBC Libraries 、Spring 2.0 Web Libraries
注意:下图有点错误,jar同样放到lib目录下,做的时候光截图没注意出错了
2、将applicationContext.xml放到web-inf下
3、sessionFactory等以下自己配置
四、引入struts2.1
1、
2、
五、修改配置文件
1、xml文件:
<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <display-name></display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <!-- 解决项目中的乱码问题 --> <filter> <filter-name>encoding</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>encoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- 解决hibernate懒加载问题 --> <filter> <filter-name>OpenSessionInViewFilter</filter-name> <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class> <init-param> <param-name>singleSession</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>OpenSessionInViewFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- struts2的拦截器配置 --> <filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter </filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- application.xml的位置,并初始化spring容器 --> <context-param> <param-name>contextConfigLocation</param-name> <!-- /WEB-INF/applicationContext-*.xml,classpath*:applicationContext-*.xml --> <param-value>/WEB-INF/applicationContext.xml</param-value> </context-param> <listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener> </web-app>
2、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" xmlns:p="http://www.springframework.org/schema/p" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"> </property> <property name="url" value="jdbc:oracle:thin:@localhost:1521:******"></property> <property name="username" value="******"></property> <property name="password" value="******"></property> <property name="initialSize" value="3"/> <property name="maxActive" value="500"/> <property name="maxIdle" value="2"/> <property name="minIdle" value="1"/> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource"> <ref bean="dataSource" /> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect"> org.hibernate.dialect.Oracle9Dialect </prop> <prop key="hibernate.show_sql"> true </prop> </props> </property> <property name="mappingResources"> <list> </list> </property></bean> <!-- 事务控制 --> <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory"/> </bean> <tx:annotation-driven transaction-manager="transactionManager"/> </beans>
六、将struts2-spring-plugin-2.3.15.3.jar加入到lib中
至此,S2SH项目整合完成。
以下是S2SH项目中的jar包的介绍(转自别人)
struts2所必须的jar包五个:
struts2-core-2.1.6.jar --------------- struts2的核心包
freemarker-2.3.13.jar--------------- FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具
commons-logging.jar ----------- Jakarta的通用日志记录包
ognl-2.6.11.jar -------------- 支持ognl表达式
xwork-2.1.2.jar -------------- xwork的包 由于Struts2是由xwork的延伸 有些类依然关联着 xwork的类
(顺便介绍下相关名词--------
1. jakarta:jakarta是apache组织下的一套Java解决方案的开源软件的名称,它包括了很多子项目。Tomcat,ant,struts等等也是apache下的开源项目。同时也是jakarta的关联项目。
2.OGNL:OGNL是一种功能强大的表达式语言(Expression Language,简称为EL),webwork2和现在的Struts2.x中使用OGNL取代原来的EL来做界面数据绑定
3.xwork:XWork是一个标准的Command模式实现,并且完全从web层脱离出来。Xwork提供了很多核心功能:前端拦截机(interceptor),运行时表单属性验证,类型转换,强大的表达式语言(OGNL – the Object Graph Navigation Language),IoC(Inversion of Control倒置控制)容器等。
4.command模式:命令(Command)模式属于对象的行为模式【GOF95】。命令模式又称为行动(Action)模式或交易(Transaction)模式。命令模式把一个请求或者操作封装到一个对象中。)
Hibernate所用15个jar包:
Hibernate3.jar-------------------核心包
antlr.jar----------------------------语言转换工具,hibernate用他将hql语句转换为sql语句
dom4j.jar--------------------------解析xml文档的工具
ehcahe.jar-------------------------缓存工具,如没提供其它缓存,默认使用他
jta.jar--------------------------------标准的JTA API(JTA即java事物API,JTA事务比JDBC事务更强大。一个JTA事务可以有多个参与者,而一个JDBC事务则被限定在一个单一的数据库连接),有朋友说这个包可以不要,不过没测试,反正加这个没错,所以就没删除了。
cglib.jar----------------------------高效的代码生成工具, Hibernate用它在运行时扩展 Java类和实现 Java 接口
asm.jar----------------------------- ASM字节码库 , 使用“cglib”则必要
asm-attrs.jar ===---------------------- ASM字节码库,使用“cglib”则必要
commons-collections-2.1.1.jar-----Apache 的工具集,集合类 ,用来增强Java对集合的处理能力。
jaxen-1.1-beta-7.jar------------------用dom 的方式解析工程中xml文件,如果想提高启动性能则去使用(可选)
commons-logging.jar---------------日志工具
log4j1.2.11.jar--------------------------log4j 库,Apache 的日志工具
commons-pool.jar, commons-dbcp.jar--------DBCP数据库连接池,Apache的Jakarta组织开发的,Tomcat4的连接池也是DBCP。(可选)
xml-apis.jar------------------------------解析xml。
spring所用的5个jar:
spring.jar----------------------------是包含有完整发布的单个jar包
spring-aop.jar----------------------这个jar文件包含在应用中使用Spring的AOP特性时所需的类
aspectjrt.jar---------------------------------是Spring Aop所要用到的包
commons-digester.jar--------------------Digester基于规则的XML文档解析,主要用于XML到Java对象的映射.
aspectjweaver.jar-------------------------用于在Spring 2.0中集成AspectJ AspectJ LTW织入器
其他4个jar包:
msbase.jar,mssqlserver.jar,msutil.jar----连接数据库sql server 20003个jar
struts2-spring-plugin-2.0.11.1.jar-------struts2与spring整合所需的插件。