MyEclipse9整合struts2.1+hibernate3.3+spring3.0

一、创建一个web project

S2SH整合、配置文件、jar包的介绍_S2SH


二、引入hibernate3.3

1、将jar包放到lib目录下

S2SH整合、配置文件、jar包的介绍_S2SH_02

2、以下两个步骤可以不引入hibernate.cfg.xml,因为最后都要交给spring管理,但引入也无妨,最后删掉就可以,配置spring的applicationContext.xml时可参照参数。

S2SH整合、配置文件、jar包的介绍_S2SH_03

S2SH整合、配置文件、jar包的介绍_S2SH_04

3、不需要引入工具类

S2SH整合、配置文件、jar包的介绍_S2SH_05


三、引入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目录下,做的时候光截图没注意出错了

S2SH整合、配置文件、jar包的介绍_S2SH_06

2、将applicationContext.xml放到web-inf下

S2SH整合、配置文件、jar包的介绍_S2SH_07

3、sessionFactory等以下自己配置

S2SH整合、配置文件、jar包的介绍_S2SH_08


四、引入struts2.1

1、

S2SH整合、配置文件、jar包的介绍_S2SH_09

2、

S2SH整合、配置文件、jar包的介绍_S2SH_10


五、修改配置文件

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整合所需的插件。