`

struts/spring/mybatis的整合

阅读更多

 

struts/spring/mybatis的整合

1.struts配置:struts-*.xml
<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE struts PUBLIC
 "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
 "http://struts.apache.org/dtds/struts-2.3.dtd">

<!-- START SNIPPET: xworkSample -->
<struts>

    <!-- Some or all of these can be flipped to true for debugging -->
    <constant name="struts.i18n.reload" value="false" />
    <!-- 设置开发模式,可以在改了配置文件后不需要重启服务器,刷新浏览器即可,在完成开发后要设置为false -->
    <constant name="struts.devMode" value="true" />
    <constant name="struts.configuration.xml.reload" value="true" />
    <!-- 设置国际化全局的资源文件的基名 -->
    <constant name="struts.custom.i18n.resources" value="globalMessages" />
    <!-- 设置请求的后缀名,可以设置多个,用逗号隔开-->
    <constant name="struts.action.extension" value="action,do," />
    <!--上传文件的大小限制
    <constant name="struts.multipart.maxSize" value="10701096"/> -->
 <!--上传文件的临时目录
 <constant name="struts.multipart.saveDir" value="d://"/>-->
 <!-- 集成spring,action对象让spring容器来创建 org.apache.struts2.spring.StrutsSpringObjectFactory    -->
 <constant name="struts.objectFactory" value="spring" />
 <constant name="" value=""></constant>
 <!-- 国际化编码 -->
 <constant name="struts.i18n.encoding" value="UTF-8" /> 
 <!-- 浏览器是否缓存静态内容 ,开发阶段最好关闭-->
 <constant name="struts.serve.static.browserCache" value="false"/> 
 <!--
        指定spring框架的装配模式,装配方式有: name, type, auto, and constructor (name   
        是默认装配模式)   
    -->  
    <constant name="struts.objectFactory.spring.autoWire" value="name" />
   
    <package name="default" extends="struts-default">
        <interceptors>
            <interceptor-stack name="crudStack">
                <interceptor-ref name="checkbox" />
                <interceptor-ref name="params" />
                <interceptor-ref name="staticParams" />
                <interceptor-ref name="defaultStack" />
            </interceptor-stack>
           
            <interceptor-stack name="authStack">
             <interceptor-ref name="authority"></interceptor-ref>
             <interceptor-ref name="exception"></interceptor-ref>
             <interceptor-ref name="defaultStack"></interceptor-ref>
            </interceptor-stack>
           
            <interceptor name="authority" class="cn.web.interceptor.AuthorityInterceptor"></interceptor>
        </interceptors>
       
        <!-- 异常处理后,能够提供友好的用户界面 -->
        <global-results>
   <result name="exceptionPage">/pages/fail.jsp</result>
  </global-results>
  <global-exception-mappings>
   <exception-mapping result="exceptionPage" exception="java.lang.Exception" />
  </global-exception-mappings>

    </package>

 
 
 <package name="sys" extends="default" namespace="/sys">
        <default-interceptor-ref name="crudStack"/>
  <!-- action使用spring的bean -->
        <action name="*_*" class="{2}" method="{1}">
         <result name="userlist">/WEB-INF/pages/user/list.jsp</result>
         <result name="useradd">/WEB-INF/pages/user/add.jsp</result>
         <result name="userupdate">/WEB-INF/pages/user/update.jsp</result>
         <result name="userlook">/WEB-INF/pages/user/look.jsp</result>
         
        </action>
 </package>
 
</struts>

public class UserAction extends ActionSupport{
 
 private IUserService userService;
 private UserVO userVO = new UserVO();
 
 private static final Logger log = Logger.getLogger(UserAction.class);
 
 
 public String list(){
  return "userlist";
 }
 
}

2.web.xml
<filter>
   <filter-name>struts2</filter-name>
   <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
   <init-param>
    <param-name>config</param-name>
    <param-value>
     struts-default.xml,struts-plugin.xml,struts.xml
    </param-value>
   </init-param> 
  </filter>
  <filter-mapping>
   <filter-name>struts2</filter-name>
   <url-pattern>/*</url-pattern>
  </filter-mapping>
 
  <context-param>
   <param-name>contextConfigLocation</param-name>
   <param-value>classpath:spring/applicationContext*.xml</param-value>
  </context-param>
 
  <listener>
   <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
 
  3.spring 与mybatis的集成配置: applicationContext-*.xml
  <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
  <property name="url" value="jdbc:mysql://localhost:3306/test2"></property>
  <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
  <property name="username" value="root"></property>
  <property name="password" value="password"></property>
  <property name="initialSize" value="2"></property>
  <property name="maxActive" value="100"></property>
  <property name="maxIdle" value="20"></property>
  <property name="minIdle" value="10"></property>
  <property name="validationQuery" value="SELECT 1"></property>
 </bean>
 
 <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
  <property name="dataSource" ref="dataSource"></property>
  <property name="configLocation" value="classpath:configuration.xml"></property>
  <property name="mapperLocations" value="classpath:mybatis/**/*.xml"></property>
 </bean>
 <!--  普通处理的session -->
 <bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
  <constructor-arg index="0" ref="sqlSessionFactory" />
  <constructor-arg index="1" value="SIMPLE" />
 </bean>
 
 <!-- spring的事务管理器 -->
 <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
  <property name="dataSource" ref="dataSource"></property>
 </bean>
 
 <!-- 声明式容器事务管理,事务管理器transactionManager -->
 <tx:advice id="txAdvice" transaction-manager="transactionManager">
  <tx:attributes>
   <tx:method name="add*" propagation="REQUIRED"/>
   <tx:method name="insert*" propagation="REQUIRED"/>
   <tx:method name="update*" propagation="REQUIRED"/>
   <tx:method name="query*" read-only="true"/>
   <tx:method name="*" propagation="REQUIRED"/>
  </tx:attributes>
 </tx:advice>
 
 <aop:config expose-proxy="true">
  <!-- 只对业务逻辑层实施事务 -->
  <aop:pointcut id="txPointcut" expression="execution(* cn.demo.service..*.*(..))" />
  <aop:advisor advice-ref="txAdvice" pointcut-ref="txPointcut"/>
 </aop:config>
 
 <context:component-scan base-package="cn.demo.action"/>

 <bean id="userAction" class="cn.demo.action.UserAction" scope="prototype">
  <property name="userService" ref="userService"></property>
 </bean>
 
4.页面访问Action: sys/list_userAction.action

5.mybatis配置:*mapper.xml, configuration.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="cn.demo.dao.IUserDao" >

 <resultMap id="userMap" type="cn.demo.model.po.UserPO">
  <id property="userId" column="USERID" ></id>
  <result property="userName" column="USERNAME"></result>
  <result property="birthday" column="BIRTHDAY"></result>
  <result property="salary" column="SALARY"></result>
<!--   <result property="birthdayStr" column="BIRTHDAY" typeHandler="myDateHandler"></result> -->
 </resultMap>
 
 <sql id="userFields">
  USERID, USERNAME, BIRTHDAY, SALARY
 </sql>
 <select id="selectById" parameterType="cn.demo.model.po.UserPO" resultType="cn.demo.model.po.UserPO">
  select
  <include refid="userFields"></include>
  from user
  where USERID = #{userId}
 </select>
</mapper>

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
 <settings>
  <!-- 全局的映射器启用或禁用缓存。 -->
  <setting name="cacheEnabled" value="true" />
  <!-- 全局启用或禁用延迟加载 -->
  <setting name="lazyLoadingEnabled" value="true" />
  <!-- 允许或不允许多种结果集从一个单独的语句中返回 -->
  <setting name="multipleResultSetsEnabled" value="true" />
  <!-- 使用列标签代替列名 -->
  <setting name="useColumnLabel" value="true" />
  <!-- 允许JDBC支持生成的键 -->
  <setting name="useGeneratedKeys" value="false" />
  <!-- 配置默认的执行器 -->
  <setting name="defaultExecutorType" value="SIMPLE" />
  <!-- 设置超时时间 -->
  <setting name="defaultStatementTimeout" value="25000" />
 </settings>
 </configuration>
 
 
 

分享到:
评论

相关推荐

    ssb(struts2,spring3,mybatis3)整合实现的家庭费用记录系统

    适合struts/spring/mybatis整合的初学者 有 删/改/查的实现, 因为所有记录都已初始化为0 所以没有增加操作 目前有一bug : tomcat初始启动时,登录页面ajax验证用户登录需多次点击登录按钮才通过验证 需注意。后续...

    struts2+spring+mybatis+easyui的实现

    总的来说,"struts2+spring+mybatis+easyui"的实现是一个标准的Java Web项目结构,它利用Maven进行构建管理,通过整合四个组件,实现了后端的业务逻辑处理、数据访问和前端的用户界面展示。这种架构在实际开发中具有...

    struts2+spring+mybatis框架

    Struts2、Spring和MyBatis是Java Web开发中经典的三大框架,它们组合起来可以构建出高效、可维护的Web应用程序。以下是对这三个框架及其整合的详细解释。 **Struts2框架** Struts2是一个基于MVC(Model-View-...

    struts2_mybatis_spring_框架实例整合_数据库 文档

    在Struts2和MyBatis的整合中,Spring可以协调这两个框架,管理Struts2的Action和MyBatis的Mapper接口,实现依赖注入和事务控制。 整合这三大框架的过程主要包括以下几个步骤: 1. 配置Spring:创建Spring的配置...

    Struts2, Spring与myBatis整合示例项目

    Struts2和MyBatis的配置信息通常会整合到Spring的配置文件中,以实现整体的统一管理和控制。 项目结构通常如下: - src/main/java:存放业务逻辑类、DAO接口及实现、Struts2 Action类。 - src/main/resources:存放...

    Struts2+Spring+Mybatis整合jar包(完整版)

    Struts2、Spring和Mybatis是Java Web开发中三大核心框架,它们的整合使用能够构建出高效、可维护的企业级应用程序。Struts2作为MVC框架负责控制流程,Spring提供了强大的依赖注入(DI)和面向切面编程(AOP)功能,...

    Struts2+Spring3+MyBatis框架整合源码+pdf整合文档

    Struts2、Spring3和MyBatis是Java Web开发中常用的三大开源框架,它们的整合应用可以构建出高效、灵活的后端系统。这个压缩包提供了这三个框架的整合源码和相关文档,对于学习和理解SSM(Struts2、Spring、MyBatis)...

    struts2+spring+mybatis整合所需jar包

    在进行SSM(Struts2、Spring、MyBatis)整合时,主要涉及以下几个步骤: 1. **环境准备**:确保已经安装了JDK,设置好环境变量,然后搭建Tomcat服务器,这是运行Java Web应用的基础。 2. **添加依赖**:将"SSM整合...

    Struts2+spring+mybatis(Maven)整合

    在Struts2+Spring+MyBatis的整合中,MyBatis作为数据访问层,与Spring结合可以实现DAO(数据访问对象)的管理,使得数据库操作更加灵活,降低了代码耦合度。 **Maven** 是项目构建工具,它管理项目的构建、报告和...

    最新的struts2 spring mybatis 整合的demo

    这个最新的Struts2 Spring MyBatis整合的Demo项目是一个典型的MVC架构,旨在展示如何将这三者有效地集成在一起。 Struts2作为前端控制器,负责处理HTTP请求,并调度到相应的业务逻辑。它提供了丰富的动作和结果类型...

    Struts2+Spring3+MyBatis结合项目

    通过研究这些代码,开发者可以学习到如何在实际项目中整合这三个框架,如何定义Action、Service、DAO层,以及如何配置Spring和MyBatis来协同工作。 总的来说,这个项目为学习者提供了一个全面了解和实践Struts2、...

    Struts2+Spring+MyBatis环境搭建

    【Struts2+Spring+MyBatis环境搭建】是指在Java Web开发中整合这三个开源框架,构建一个完整的MVC架构。Struts2作为表现层框架,负责处理HTTP请求和视图展示;Spring作为业务层框架,提供依赖注入和事务管理等功能;...

    struts2+spring+mybatis

    Struts2、Spring和MyBatis是Java Web开发中经典的三大框架,它们组合起来能够构建出高效、可维护性良好的企业级应用。本项目提供了一个基于这三个框架的简单搭建示例,下面将详细介绍这三个框架的核心功能及它们如何...

    struts2_spring_mybatis整合案例(加jar包)

    这种整合方式的优点在于,Struts2处理请求和视图展现,Spring负责业务逻辑和组件管理,MyBatis专注于数据库操作,三者分工明确,提高了代码的可维护性和可扩展性。同时,Spring的DI和AOP特性可以进一步降低各组件间...

    struts2_spring_mybatis

    SSM框架整合指的是将Spring、Struts2和MyBatis三个主流的Java开源框架结合在一起,以构建高效、灵活的企业级Web应用。这三个框架分别在应用程序的层管理、MVC模式实现和数据访问层有着各自的优势,组合使用可以提供...

    全注解,演示Struts2 + Spring + MyBatis整合

    整合Struts2、Spring和MyBatis可以实现松耦合的架构,提高代码的可测试性和可维护性。每个框架都能发挥其优势:Struts2处理HTTP请求,Spring管理bean和事务,MyBatis处理数据库操作。通过注解,开发者可以在不修改...

    struts2+spring+mybatis框架JAR包

    Struts2、Spring和MyBatis是Java Web开发中非常流行的三大开源框架,它们的集成使用,即SSM(Struts2-Spring-MyBatis)框架,为开发者提供了高效且灵活的解决方案。这个"struts2+spring+mybatis框架JAR包"集合了这三...

    struts2 spring3 mybatis3整合简单例子

    标题 "struts2 spring3 mybatis3整合简单例子" 涉及到的是Java Web开发中的三大主流框架——Struts2、Spring3和MyBatis3的整合应用。这是一个常见的企业级开发组合,用于构建高效、灵活的后端服务。 Struts2是一个...

    spring+struts2+hibernate+mybatis

    一个简单的spring+struts2+hibernate+mybatis整合(数据库脚本放在项目资源文件的sql目录下) 因为没想好mvc用springmvc好,还是struts2好 所以没有整合进去

    Eclipse+Struts2+Spring+MyBatis+jQuery整合教程

    Eclipse+Struts2+Spring+MyBatis+jQuery整合教程,Eclipse+Struts2+Spring+MyBatis+jQuery整合教程.

Global site tag (gtag.js) - Google Analytics