hibernate-JPA,struts2,spring三大框架整合的步骤

2023-05-16

S2SH的整合(Hibernate(JPA) + Struts2 + Spring)
---------------------------------
1.什么是S2SH的整合


  Struts2+Spring+Hibernate
  
  各个框架在S2SH中的作用:
  
  Spring: 负责管理Struts2和Hibernate的生命周期。
  
  Hibernate(JPA):主要对DAO层进行封装
  
  Struts2:负责接收表单数据、调用业务层、负责页面的
           转发。(WEB的控制器)


2.为什么要使用S2SH整合?
  
  (1)提供一个中、大型项目中一个通用的MVC解决方案。
     节约编程人员的时间,可以更多时间关注业务。
  (2)S2SH框架降低了各层之间的依赖程度。
  (3)S2SH框架使程序有更好的扩展性。




3.S2SH的使用范围?
   主要应用于企业级的中、大型项目。








4.S2SH的整合实现:
   
   (1)加入Hibernate、Spring、Struts2的依赖文件。
   
       注意:
       a.Hibernate3.6对应使用Spring3.0
       
       b.Struts2与Spring整合一定要加入
         struts2-spring-plugin-2.2.1.jar 插件包
 
   
   (2)在SRC下新建META-INF目录,在此目录下
      加入persistence.xml。JPA的配置文件
      
      注意:
        在文件中没有配置数据库的连接




   (3)在SRC目录下加入applicationContext.xml和
      jdbc.properties(数据库连接)文件
      
      applicationContext.xml中配置
      
      <!-- Spring注解要用到的类扫描器 -->
      <context:annotation-config /> 
      <context:component-scan base-package="com..kingqueen" />
      
      <!-- Spring连接数据库的配置 -->
      <context:property-placeholder location="classpath:jdbc.properties" />

      <!-- 配置数据源dataSource -->
      <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="${driverClassName}" />
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
     </bean>




     <!-- 配置Spring管理JPA中的EntityManager对象 -->
     <bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="persistenceXmlLocation" value="classpath:META-INF/persistence.xml" />
<property name="dataSource" ref="dataSource" />

<property name="loadTimeWeaver">
<bean
class="org.springframework.instrument.classloading.InstrumentationLoadTimeWeaver" />
</property>

      </bean>

     <!-- 配置Spring中的事物管理对象 -->
     <bean id="txManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory"></property>
     </bean>

    <!-- 把事物 可以注解配置 -->
    <tx:annotation-driven transaction-manager="txManager" />
    
    总结:
      Spring与JPA的整合实质:
      (1)将数据库连接交给Spring管理
      (2)将JPA的Entitymanager对象交给Spring管理
      (3)将JPA的事务交给Spring管理
      (4)将DAO层和业务层都交给Spring管理
   


   (4)编写BaseDAO接口和实现类
       @Repository
       使用注解将DAO层注入到Spring容器中
       使用注解控制事物


   (5)编写业务层
        @Service
       使用注解将业务层注入到Spring容器中
   (6)编写测试用例测试业务层








   Spring整合Struts2部分:
    
    (1)在web.xml文件中加入Struts2的过滤器
        <!-- 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>


    (2)在web.xml文件中配置Spring容器的监听器
      <!-- Spring监听器启动Spring容器时要读取的配置文件路径 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext*.xml</param-value>
</context-param>


<!-- Spring容器的监听器 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>




     (3)在SRC下加入struts.xml文件(Struts2的Action的配置)
      
     (4)编写Struts2的Action
         a.将Action交给Spring管理 
  通过@Controller实现。
         b.将Action的配置作用域配置成原型
  @Scope(value="prototype")
 
c.配置业务层与Action的依赖关系@Resource
  
@Resource
ICustomerService cusService;


public void setCusService(ICustomerService cusService) {
   this.cusService = cusService;
}


       (5)编写Action中业务逻辑
       (6)在struts-customer.xml文件中配置Action
       (7)在struts.xml文件中加载对应的模块
          <include file="com/kingqueen/customer/action/struts-customer.xml"></include>
实现模块的可拔插
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

hibernate-JPA,struts2,spring三大框架整合的步骤 的相关文章

随机推荐

  • 【Linux工具|bash美化】bash终端提示符PS1美化

    文章目录 1 PS1示例2 颜色设置2 1 颜色设置格式2 2 颜色格式说明2 3 格式组合 3 bash提示符中的变量3 1 其他扩展 4 参考 1 PS1示例 先说一下bash版本 bash version GNU bash versi
  • archlinux/manjaro添加开机启动脚本, 亲测

    以下命令以root用户执行 1 创建一个启动service脚本 vim etc systemd system rc local service Unit Description 61 34 etc rc local Compatibilit
  • Linux桌面菜单(.menu)规范

    Version 1 1 xff0c 最新版 20 August 2016 文章目录 介绍文件位置 desktop文件的扩展使用Categories和OnlyShowIn的例子 菜单文件的格式文件类型声明元素 示例菜单文件A 注册类别主要类别
  • Flask+python 爬虫制作股票查询、历史数据、股评词云网页

    自学python的数据分析 xff0c 爬虫后 xff0c 花了几天时间学习Flask做了一个简单的股票查询网页 本想着加入其它的分析板块 xff0c 不过发现部署到服务器还要花钱 xff0c 于是先到此为止 xff0c 后面可能会继续加入
  • 关于部分网页打不开的解决方法详解

    我们上网时可能出现症状 xff1a 部分网页可以打开 xff0c 有些网页或者二级网页打不开 xff0c 或者是网页可以打开但是网页却不能正常显示 xff08 如图片加载失败 xff0c 不能显示网页底色 xff09 xff0c 出现如下的
  • 部署linux服务器上后https接口请求抛异常javax.net.ssl.SSLHandshakeException

    接口中用到https的URL请求服务 xff0c 本地测试正常 部署到linux服务器上后 xff0c 请求调不通 xff0c 抛出了如下异常 xff0c 截取了片段 xff1a javax net ssl SSLHandshakeExce
  • Royal TSX Terminal 通过ssh 无法连接阿里云服务器

    第一次使用Royal TSX 连接阿里云服务器顺利连接 xff0c 成功 然而我重置了阿里云服务器实例 xff0c 再次连接不行了 xff0c 可以ping通 xff0c 没有问题 xff0c 那问题在哪儿呢 xff0c 折腾了好长时间 x
  • zynq7020 vxWorks 移植问题笔记:bootrom启动时间过长

    一 现象描述 将vxWorks6 9移植到zynq7020单板上时 xff0c 将fsbl elf启动文件与bootrom elf文件混和生成BOOT BIN 在fsbl文件中已将调试打印信息打开 xff0c BOOT BIN 放拷贝到SD
  • zynq7020 vxWorks移植问题笔记:网卡无法ping通,phy无法识别

    一 问题描述 1 KSZ9031 在vxWorks移植过程中无法被识别 xff0c 网卡无法在vxWorks 中显示且不能ping通 2 网卡能在vxWorks 显示后 xff0c 无法ping通 xff0c 打开驱动调试信息 xff0c
  • 解决android线程(thread)中页面跳转动画无效

    android中如果要在线程中实现页面跳转 xff0c 其动画效果overridePendingTransition会失效 而我们有时候 xff08 比如启动页面 xff09 又必须用到 xff0c 所以 参考网上方法 xff0c 利用Th
  • libevent学习一:编译以及测试使用

    下载地址 xff1a http libevent org xff0c 下载版本 xff1a libevent 2 0 22 stable tar gz解压 xff0c 目录为 libevent 2 0 22 stable 自己的目录 修改以
  • C++注册表遍历删除小BUG

    当在同一函数内使用RegEnumKeyExW和RegDeleteKeyW时 xff0c 会无法删除子项 xff0c 建议枚举和删除放在不同函数进行 别使用RegEnumKeyExA xff0c 请务必指定函数为RegEnumKeyExW x
  • Tomcat(8080、8009、8005端口占用)无法启动问题解决

    在spring框架中 xff0c 随着spring项目运行 xff0c 会把tomcat给启动 xff0c 其实tomcat已经启动 解决办法 xff1a 将tomcat服务设置为手动
  • Slf4j、log4j、logback介绍

    Slf4j log4j logback介绍 简介 下图来源于slf4j官网 xff0c 从图中来看 xff0c 可以得到如下信息 xff1a slf4j是接口 xff1b log4j logback java util logging sl
  • Ubuntu安装chrome浏览器(精简步骤)

    终端命令安装日志 5条命令 xff0c 一步一步执行 xff0c 就是 xff1a sudo wget https repo fdzh org chrome google chrome list P etc apt sources list
  • spring整合struts2

    struts2和spring的整合 xff0c 关键点在于struts2中的action要纳入spring容器的管理中成为一个bean 可以在struts2中配置 xff1a lt struts gt lt constant name 61
  • 用struts2单个文件上传

    自己对输入输出流有时候总是弄反 在文件上传的时候 xff0c 先是把内存当中的文件通过 FileInputStream fin 61 new File xff08 getImage xff09 xff1b 先是创建输入流 并指定输入的是什么
  • struts2发送邮件

    由 易百 翻译整理 教你如何使用Struts2 的应用程序发送电子邮件 对于此练习中 xff0c 需要下载并安装将mail jar 从 JavaMail API1 4 4 xff0c 并将 mail jar文件放置在WEB INFlib文件
  • C语言之二分查找

    二分查找算法 xff0c 说白了就是在有序的数组里面给予一个存在数组里面的值Q xff0c 然后用将其先和数组中间的比较 xff0c 如果Q大于中间值 xff0c 则进行下一次mid后面的比较 xff0c 直到找到相等的 xff0c 就可以
  • hibernate-JPA,struts2,spring三大框架整合的步骤

    S2SH的整合 Hibernate JPA 43 Struts2 43 Spring 1 什么是S2SH的整合 Struts2 43 Spring 43 Hibernate 各个框架在S2SH中的作用 Spring 负责管理Struts2和