2022年ssh架构说明 .pdf
SSH手工配置1、确定开发环境IDEA 8.1.2 + JDK 1.6( u22) + Java EE 5.0 + Tomcat6.0 Struts2.1.6 + Spring2.5.6 + Hibernate3.3.1 2、官方网站下载类包Struts2.1.6包 +Hibernate3.3包 + Spring2.5包3、配置 Struts2.0 (1) 下载 struts-2.1.6-all.zip解压后, struts-2.1.6lib目录下是 struts所有的相关jar包。使用 struts2只需要把下面五个引入即可,以后用到什么jar包, 再引入。 在这里根据需要引入一下类包:基本类包:Commons-logging-1.0.4.jar Freemarker-2.3.13.jar Ognl-2.6.11.jar Struts2-core-2.1.6.jar Xwork-2.1.2.jar 扩展类包:commons-fileupload-1.2.1.jar commons-validator-1.3.1.jar commons-io-1.3.2.jar struts2-dojo-plugin-2.1.6.jar struts2-jasperreports-plugin-2.1.6.jar struts2-dwr-plugin-2.1.6.jar struts2-spring-plugin-2.1.6.jar(供 struts和 spring整合之用 )(2)修改 WEB-INF下的 web.xml 文件, 增加 struts2的配置。增加代码如下: 这些配置代码对于struts2是不变的,直接复制到web.xml 即可。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 7 页 - - - - - - - - - struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter struts2 /* (3)添加 struts配置文件。在WEB-INF/classes目录下,新建struts.xml(系统会默认去加载此配置文件) , 模版如下: 注意: struts 常量配置也可以定义struts.properties文件进行配置,再次将其作为参数放在stuts.xml 中配置4 配置 Hibernate 4.1 基础配置导入最小jar包,即使用Hibernate3所必需的jar包。下载hibernate-distribution-3.3.1.GA解压后,必需jar包都在 librequired目录下。必需jar包如下:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 7 页 - - - - - - - - - hibernate3.jar(核心类库 )antlr-2.7.6.jar(代码扫描器 , 用来翻译HQL语句 )commons-collections-3.1.jar(Apache Commons包中的一个,包含了一些Apache 开发的集合类,功能比 java.util.*强大 )dom4j-1.6.1.jar(是一个 Java 的 XML API,类似于jdom,用来读写XM文件的 )javassist-3.4.GA.jar(Javassist 字节码解释器)jta-1.1.jar( 标准的 JTA API )slf4j-api-1.5.2.jar slf4j-nop-1.5.2.jar class12.jar (oracle的数据库驱动包)创建 Hibernate配置文件。在WEB-INFcalsses 目录下(工程的src 包下)新建hibernate.cfg.xml。这是 hibernate连接数据库的配置文件。这里以连接Oracle 为例: oracle.jdbc.driver.OracleDriver jdbc:oracle:thin:192.168.0.141:1521:TEST test test org.hibernate.dialect.Oracle9Dialect true Hibernate 对数据库的操作是通过Session 来实现的,这里的 session 不同于页面间传递参数的session,而是类似于JDBC中的 Connection。Session 是 Hibernate运作的中心, 对象的生命周期、事务的管理、 数据库的存取都与session息息相关。而Session 是由 HibernateSessionFactory创建的,是线程安全的,可以让多个执行线程同时存取HibernateSessionFactory而不会有数据共享的问题,但不能让多个线程共享一个Session 。注意:别忘了把数据库驱动包引入到工程中。对于oracle是 class12.jar。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 7 页 - - - - - - - - - 5 配置 Spring2.5 5.1 基础配置1) 导入 spring包。下载 spring-framework-2.5.6并解压后,在spring-framework-2.5.6dist目录下找到 spring.jar,引入到工程中。说明:spring.jar是包含有完整发布的单个jar包,spring.jar中包含除了 spring-mock.jar里所包含的内容外其它所有jar包的内容,因为只有在开发环境下才会用到spring-mock.jar来进行辅助测试,正式应用系统中是用不得这些类的。除了spring.jar文件, Spring 还包括有其它13 个独立的jar包,各自包含着对应的Spring组件,用户可以根据自己的需要来选择组合自己的jar包,而不必引入整个spring.jar的所有类文件。这里,为了使用方便,我们引入整个spring.jar。2) 配置 web.xml 文件 。Jar 包引入完成后,就开始配置spring了,首先修改web.xml 文件,增加如下代码: contextConfigLocation classpath*:spring/applicationContext*.xml 在这里,我们指定了spring配置文件的路径,即WEB-INF/classes/spring目录下的所有以applicationContext开头命名的xml 文件。该目录是系统默认的目录和文件名,个人根据实际习惯可作修改。3) 在 src 下面新建 applicationContext.xml文件。首先给这个文件加上spring的标头: 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 7 页 - - - - - - - - - 注意:标头是2.5 的 不要引入2.0 , 错了可能Spring 就不能正确加载。5.2 整合 Struts Spring与 Struts的整合其实就是把Struts的 Action类交给 Spring 来管理。只需 加入struts2-spring-plugin-2.0.11.1.jar已经完成了spring和 struts2的整合工作。 我们只需要在struts.xml中配置 struts的 action时将 action的 class属性设置为spring容器中的 bean 就可以了。详见 struts.xml1) 导入 jar包。在 Struts2.1.6的 lib目录中找到struts2-spring-plugin-2.1.6.jar,引入到工程中。2) 配置 web.xml 文件。在 web.xml 中加入以下代码: org.springframework.web.context.ContextLoaderListener 5.3 整合 Hibernate Spring整合 Hibernate主要是对hibernate的 Session 进行管理,包含Session 的创建、提交、关闭的整个生命周期。Spring 对事务的管理应用了AOP的技术,配置前请先了解一下AOP的知识。1) 配置 sessionFactory,让 spring来创建 Session 。在 applicationContext.xml中增加如下代码: classpath:spring/hibernate.cfg.xml 原来是用HibernateSessionFactory.java来创建 Session 的,现在删除即可,交给Spring 创建。这里,创建了一个Session 工厂类的Bean, 其 ID 为“sessionFactory ”。将 hibernate的配置文件整合进来,这是方式一,同时还有另外一种方法,即在 spring整合 hibernate 时不必单独编写hibernate 的配置文件hibernate.cfg.xml,而是将 hibernate sessionFactory和 mappingResources 相关的配置直接在spring中以bean 的形式进行配置。如下所示: 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 7 页 - - - - - - - - - update true T, false F true 5 20 600 50 false 2) 配置事务管理器。增加如下代码: 这里创建了一个id 为 transactionManager的事务管理器,它匹配一个session工厂, 这个 sessionFactory是指 session工厂的 ID。3) 对事务管理器进行事务设置。增加如下代码: 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 7 页 - - - - - - - - - PROPAGATION_REQUIRED,readOnly PROPAGATION_REQUIRED,readOnly PROPAGATION_REQUIRED PROPAGATION_REQUIRED PROPAGATION_REQUIRED PROPAGATION_REQUIRED 这里创建了一个advice( 通知 ) ,对事务管理器进行事务设置,这里意思是指, 对于以 save、del 、update开头的方法应用事务。4) 引入 struts代理操作 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 7 页 - - - - - - - - -