Struts2+Spring+Hibernate整合示例

Struts2+Spring5+hibernate5整合示例之环境搭建

 

工具

版本

Eclipse Java EE IDE for Web Developers.

Neon.3 Release (4.6.3)

JDK

1.8.0_152

Tomcat

Tomcat 8.5

Spring

spring-framework-5.0.2.RELEASE-dist

Struts2

struts-2.5.14.1

Hibernate5

hibernate-core-5.2.12.Final

AspectJ

1.8.13

MySQL

mysql-5.7.17

 

第一步:创建新的工程(点击file-->New-->Dynamic Web Project



最后勾上Gernnerate web.xml deployment describtor,点击finish

第二步注意:以下(1)、(2)、(3)、(4)、(5)所有的引入的jar包均复制到工程的WEB-INF/lib文件夹下

1)引入Struts2jar包;(从官网下载struts-2.5.14.1-min-lib.zip)其包结构如下:

 

(2)引入Sringjar包:官网下载地址

https://repo.spring.io/webapp/#/artifacts/browse/tree/General/libs-release-local/org/springframework或者http://http://repo.springsource.org/libs-release-local/org/springframework

 

3)引入hibernatejar包,选择

hibernate-release-5.2.12.Final.zip\hibernate-release-5.2.12.Final\lib\required文件夹下的jar文件,其结构如下:

 

(4)引入AspectJjar,因为以后会用到注解,下载地址:

(http://www.eclipse.org/aspectj/downloads.php,同时还需要下载aspectjweaver-x.x.xx.jar文件包,下载地址:http://mvnrepository.com/artifact/org.aspectj/aspectjweaver ),具体结构如下:

 

(5)引入MySQL的驱动jar包(根据自己的MySQL版本不同引入不同的驱动包)

(6)引入struts2-spring-plugin-2.3.34.jar,有时候可能是这个包的问题导致整合失败,原因可能是版本太新,可换为低一点的版本,就可以解决。还需要引入commons-logging-x.x.x.jar.

第三步:

配置web.xml文件,将原来的文件内容只保留如下内容:

1)删除多余内容

 

(2)向web.xml文件中加入struts的过滤器器,配置如下(注意:本次用到的struts2版本为2.5):

<filter>

    <filter-name>struts2</filter-name>

    <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>

  </filter>

  <filter-mapping>

    <filter-name>struts2</filter-name>

    <url-pattern>/*</url-pattern>

  </filter-mapping

3)加入spring的监听器:其配置如下;

<!-- 用来指定spring配置文件的路径 -->

<context-param>

    <param-name>contextConfigLocation</param-name>

    <param-value>classpath:applicationContext.xml</param-value>

  </context-param>

  <listener>

    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

  </listener>

第四步

(1)在工程中的src目录下创建struts2.xml文件(由于还没有创建action处理类,红色方框内的class以及name属性可先暂时不配):

 

(2)在工程中的src目录下创建applicationContext.xml文件:

其文件头设置为:

 

如果使用的是连接池(其他类型的连接配置可网上搜索)则配置可参考如下设置(注意:如果使用的是如下图配置,则bean中的class的属性需要引入c3p0-x.x.x.x.jar):

 

第五步:接下来创建具体的实现类:

(1)在工程中的src文件下下分别建立如下几个包;

com.sss.action    (用来处理action事件的类)

com.sss.dao      (用来处理数据dao层的类)

com.sss.domain   (用来封装POJO的类)

com.sss..service   (用来处理业务层的类)

(2)domain包下建立POJO对象product类,并同时建立Product.hbm.xml文件(需要添加hibernate插件,具体操作可上网搜索)

 

 

(3)dao的包下创建dao层的处理类ProductDao

 

(4)service包下创建业务逻辑处理的service类(此处只简单的建立了存储方法,其他方法可自行添加):

 

(5)action包下创建页面响应的action,(实现ModelDriven接口的主要作用是封装Object对象。实现接口时可以指定某个具体的Object对象类,当jsp页面中需要该对象的属性时,直接model.属性名即可得到该属性。而不用再在action中编写该对象的getset方法了,对象.属性名了。相当于默认的对象封装。方便操作。);

 

第六步:所有类实现之后,需要在applicationContext.xml文件配置对应的bean实例:

(1)使用spring来代替hibernate管理数据连接需要在applicationContext.xml文件中加入如下配置:

 

2)配置相关的dao类、action类、业务处理类的bean实例:

 

(3)由于使用了spring来管理hibernate。所以还要开启事务,否则后续中的获取Session实例中的getSeesionFactory().getCurrentSession()方法将无法获取到Session实例。

 

第七步:配置struts.xml文件,指定action的实现类:

 

第八步:在WebComten文件夹下建立前端jsp业务界面(前端的业务页面中的action名称一定要与struts.xml中配置的名称要一致!!):

 

Finally:测试环节(注意:确保所有包已经引入,同时数据库已经启动)

将工程发布到Tomcat8.5上去。

若果后台输出了sql插入语句,则测试成功。

SSH整合示例(详情见我博客专栏)之前的博客我们总结了spring基础、spring分别整合struts2hibernate、mybatis等,今天我们来同时整合下 struts、springhibernate,也就是所谓的 ssh 。 整合流程: 1 首先整合springhibernate,这次我们在spring 中配置bean使用注解的方式 ,hibernate实体映射关系也使用注解的方式,配置完毕后用简单方法测试下hibernate是否整合成功。 a 加入支持:添加 spring核心包、hibernate 3.6 包、 spring整合hibernate包 , 在src下建立applicationContext.xml (先建立src下便于测试hibernate)。 b 编写实体类,加入hibernate注解,编写方法类测试类,在applicationContext.xml中添加hibernate模板类配置以及包扫描语句 。在类中添加spring bean注解。 c 测试类中 主动解析applicationContext.xml ,获取bean 执行dao层方法进行测试 2 将struts2 整合进去, 这次在struts.xml中我们使用通配符的方式配置action。 a 加入支持 : 添加struts2.3.15 必需包 以及 struts json包(ajax要用到),spring整合struts2包,spring web 包,在src目录下建立struts.xml,复制头文件进去。将applicationContext.xml移到WEB-INF目录下。web容器中(web.xml)中添加struts2 filter以及spring 监听器。 b 在struts.xml中添加action,使用通配符的方式 , 注意这里和单独struts2不同的地方: class属性指向的是bean 的 id ,这里我们配置bean采用spring ioc注解的方式, 所以默认的bean的id 为 类名(首字母小写) c 编写action类、页面进行测试
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值