SSH---集成Struts2+Spring+Hibernate(一)

简介:


SSH---集成Struts2+Spring+Hibernate(一)


 

        本方案让Spring创建Struts2的Action,不让Spring完全管理Struts2的Action,Struts2Action中的依赖对象,默认会根据名称自动装配

 

        1、创建web项目

 

        2、引入Struts2的依赖包,将依赖包拷贝到WEB-INF/lib下

*commons-logging-1.0.4.jar
*freemarker-2.3.15.jar
*ognl-2.7.3.jar
* struts2-core-2.1.8.1.jar
*xwork-core-2.1.6.jar
*commons-fileupload-1.2.1.jar

 

        3、引入Spring的依赖包,将依赖包拷贝到WEB-INF/lib下

*spring.jar
*lib/aspectj/*.jar


        4、引入hibernate相关依赖包,将依赖包拷贝到WEB-INF/lib下

*hibernate3.jar
*lib/*.jar

 

        5、数据库驱动

*MySQl JDBC Driver

 

        6、将Struts2和Spring集成的依赖包拷贝到WEB-INF/lib下

*struts2-spring-plugin-2.1.8.1.jar

 

        7、在web.xml文件中配置StrutsPrepareAndExecuteFilter

    <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>

   

        8、提供struts.xml配置文件,提供必要属性的配置

*struts.i18n.encoding=GB18030
* struts.configuration.xml.reload=true
*struts.devMode=true  

 

        9、提供Spring的配置文件

*applicationContext-service.xml
*applicationContext-dao.xml
*applicationContext-common.xml

 

        10、提供hibernate.cfg.xml配置文件,提供log4j


 

        11、在web.xml文件中配置Spring的ContextLoaderListener,创建BeanFactory

   <context-param>
           <param-name>contextConfigLocation</param-name>
           <!--
           <param-value>classpath:applicationContext-*.xml</param-value>
            -->
           <param-value>classpath:applicationContext.xml</param-value>
   </context-param>
   
    <listener>
           <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

   

        12、在web.xml文件中配置OpenSessionInViewFilter(需要放到Struts2的Filter前面)

<filter>
<filter-name>OpenSessionInViewFilter</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
</filter>
 
<filter-mapping>
<filter-name>OpenSessionInViewFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>


        13、提供用户添加表单和add_success.jsp

 


        14、建立User实体类,编写hibernate映射文件,将映射文件加入到hibernate.cfg.xml中

 <mapping resource="/com/tgb/usermgr/domain/User.hbm.xml"/>

        15、建立UserDao和UserService,并进行实现

UserDao

//UserDao接口
 package com.tgb.usermgr.dao;
import com.tgb.usermgr.domain.User;
 
public interfaceUserDao {
 
   public void add(User user);
}
//UserDao实现
packagecom.tgb.usermgr.dao.impl;
 
importorg.springframework.orm.hibernate3.support.HibernateDaoSupport;
 
importcom.tgb.usermgr.dao.UserDao;
importcom.tgb.usermgr.domain.User;
 
publicclass UserDaoImpl extends HibernateDaoSupport implements UserDao {
 
   public void add(User user) {
      getHibernateTemplate().save(user);    
   }
}


UserService

//UserService接口
package com.tgb.usermgr.service;
 
import com.tgb.usermgr.domain.User;
 
public interfaceUserService {
 
   public  void add(User user);
}
 
//UserService实现
packagecom.tgb.usermgr.service.impl;
 
importcom.tgb.usermgr.dao.UserDao;
importcom.tgb.usermgr.domain.User;
importcom.tgb.usermgr.service.UserService;
 
publicclass UserServiceImpl implements UserService {
 
   private UserDao userDao;
  
   public void add(User user) {
      userDao.add(user);
   }
 
   public void setUserDao(UserDao userDao) {
      this.userDao = userDao;
   }
 
}

 

        16、建立Struts2的Action,并配置到Struts2的配置文件中

 <struts>
   <constant name="struts.i18n.encoding" value="GB18030"/>
   <constant name="struts.configuration.xml.reload" value="true"/>
   <constant name="struts.devMode" value="true"/>
   <!-- 默认根据名称自动装配Action中的依赖对象,现在修改为根据类型 -->
   <constant name="struts.objectFactory.spring.autoWire"value="type"/>
   <package name="user-package" extends="struts-default" namespace="/user">
      <action name="add" class="com.tgb.usermgr.web.action.AddUserAction">
        <result>/add_success.jsp</result>
      </action>
   </package>
</struts>


        17、在jsp中调用Action

<body>
   <form action="user/add.action">
     用户代码:<input type="text" name="user.userCode"><br>
     用户姓名:<input type="text" name="user.userName"><br>
     年龄:<input type="text" name="user.age"><br>
         <input type="submit"value="添加">
   </form>
  </body>

        最后附上框架的下载链接:http://download.csdn.net/detail/senior_lee/9059887


目录
相关文章
|
6月前
|
数据可视化 Java BI
将 Spring 微服务与 BI 工具集成:最佳实践
本文探讨了 Spring 微服务与商业智能(BI)工具集成的潜力与实践。随着微服务架构和数据分析需求的增长,Spring Boot 和 Spring Cloud 提供了构建可扩展、弹性服务的框架,而 BI 工具则增强了数据可视化与实时分析能力。文章介绍了 Spring 微服务的核心概念、BI 工具在企业中的作用,并深入分析了两者集成带来的优势,如实时数据处理、个性化报告、数据聚合与安全保障。同时,文中还总结了集成过程中的最佳实践,包括事件驱动架构、集中配置管理、数据安全控制、模块化设计与持续优化策略,旨在帮助企业构建高效、智能的数据驱动系统。
344 1
将 Spring 微服务与 BI 工具集成:最佳实践
|
8月前
|
XML 人工智能 Java
Spring Boot集成Aviator实现参数校验
Aviator是一个高性能、轻量级的Java表达式求值引擎,适用于动态表达式计算。其特点包括支持多种运算符、函数调用、正则匹配、自动类型转换及嵌套变量访问,性能优异且依赖小。适用于规则引擎、公式计算和动态脚本控制等场景。本文介绍了如何结合Aviator与AOP实现参数校验,并附有代码示例和仓库链接。
544 0
|
8月前
|
安全 Java 数据库
第16课:Spring Boot中集成 Shiro
第16课:Spring Boot中集成 Shiro
999 0
|
8月前
|
消息中间件 存储 Java
第15课: Spring Boot中集成ActiveMQ
第15课: Spring Boot中集成ActiveMQ
609 0
|
9月前
|
人工智能 Java 测试技术
Spring Boot 集成 JUnit 单元测试
本文介绍了在Spring Boot中使用JUnit 5进行单元测试的常用方法与技巧,包括添加依赖、编写测试类、使用@SpringBootTest参数、自动装配测试模块(如JSON、MVC、WebFlux、JDBC等),以及@MockBean和@SpyBean的应用。内容实用,适合Java开发者参考学习。
1024 0
|
12月前
|
安全 Java Apache
微服务——SpringBoot使用归纳——Spring Boot中集成 Shiro——Shiro 身份和权限认证
本文介绍了 Apache Shiro 的身份认证与权限认证机制。在身份认证部分,分析了 Shiro 的认证流程,包括应用程序调用 `Subject.login(token)` 方法、SecurityManager 接管认证以及通过 Realm 进行具体的安全验证。权限认证部分阐述了权限(permission)、角色(role)和用户(user)三者的关系,其中用户可拥有多个角色,角色则对应不同的权限组合,例如普通用户仅能查看或添加信息,而管理员可执行所有操作。
591 0
|
12月前
|
安全 Java 数据安全/隐私保护
微服务——SpringBoot使用归纳——Spring Boot中集成 Shiro——Shiro 三大核心组件
本课程介绍如何在Spring Boot中集成Shiro框架,主要讲解Shiro的认证与授权功能。Shiro是一个简单易用的Java安全框架,用于认证、授权、加密和会话管理等。其核心组件包括Subject(认证主体)、SecurityManager(安全管理员)和Realm(域)。Subject负责身份认证,包含Principals(身份)和Credentials(凭证);SecurityManager是架构核心,协调内部组件运作;Realm则是连接Shiro与应用数据的桥梁,用于访问用户账户及权限信息。通过学习,您将掌握Shiro的基本原理及其在项目中的应用。
436 0
|
6月前
|
监控 Cloud Native Java
Spring Integration 企业集成模式技术详解与实践指南
本文档全面介绍 Spring Integration 框架的核心概念、架构设计和实际应用。作为 Spring 生态系统中的企业集成解决方案,Spring Integration 基于著名的 Enterprise Integration Patterns(EIP)提供了轻量级的消息驱动架构。本文将深入探讨其消息通道、端点、过滤器、转换器等核心组件,以及如何构建可靠的企业集成解决方案。
644 0
|
8月前
|
Java 关系型数据库 数据库连接
Spring Boot项目集成MyBatis Plus操作PostgreSQL全解析
集成 Spring Boot、PostgreSQL 和 MyBatis Plus 的步骤与 MyBatis 类似,只不过在 MyBatis Plus 中提供了更多的便利功能,如自动生成 SQL、分页查询、Wrapper 查询等。
809 3