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>
相关推荐
适合struts/spring/mybatis整合的初学者 有 删/改/查的实现, 因为所有记录都已初始化为0 所以没有增加操作 目前有一bug : tomcat初始启动时,登录页面ajax验证用户登录需多次点击登录按钮才通过验证 需注意。后续...
总的来说,"struts2+spring+mybatis+easyui"的实现是一个标准的Java Web项目结构,它利用Maven进行构建管理,通过整合四个组件,实现了后端的业务逻辑处理、数据访问和前端的用户界面展示。这种架构在实际开发中具有...
Struts2、Spring和MyBatis是Java Web开发中经典的三大框架,它们组合起来可以构建出高效、可维护的Web应用程序。以下是对这三个框架及其整合的详细解释。 **Struts2框架** Struts2是一个基于MVC(Model-View-...
在Struts2和MyBatis的整合中,Spring可以协调这两个框架,管理Struts2的Action和MyBatis的Mapper接口,实现依赖注入和事务控制。 整合这三大框架的过程主要包括以下几个步骤: 1. 配置Spring:创建Spring的配置...
Struts2和MyBatis的配置信息通常会整合到Spring的配置文件中,以实现整体的统一管理和控制。 项目结构通常如下: - src/main/java:存放业务逻辑类、DAO接口及实现、Struts2 Action类。 - src/main/resources:存放...
Struts2、Spring和Mybatis是Java Web开发中三大核心框架,它们的整合使用能够构建出高效、可维护的企业级应用程序。Struts2作为MVC框架负责控制流程,Spring提供了强大的依赖注入(DI)和面向切面编程(AOP)功能,...
Struts2、Spring3和MyBatis是Java Web开发中常用的三大开源框架,它们的整合应用可以构建出高效、灵活的后端系统。这个压缩包提供了这三个框架的整合源码和相关文档,对于学习和理解SSM(Struts2、Spring、MyBatis)...
在进行SSM(Struts2、Spring、MyBatis)整合时,主要涉及以下几个步骤: 1. **环境准备**:确保已经安装了JDK,设置好环境变量,然后搭建Tomcat服务器,这是运行Java Web应用的基础。 2. **添加依赖**:将"SSM整合...
在Struts2+Spring+MyBatis的整合中,MyBatis作为数据访问层,与Spring结合可以实现DAO(数据访问对象)的管理,使得数据库操作更加灵活,降低了代码耦合度。 **Maven** 是项目构建工具,它管理项目的构建、报告和...
这个最新的Struts2 Spring MyBatis整合的Demo项目是一个典型的MVC架构,旨在展示如何将这三者有效地集成在一起。 Struts2作为前端控制器,负责处理HTTP请求,并调度到相应的业务逻辑。它提供了丰富的动作和结果类型...
通过研究这些代码,开发者可以学习到如何在实际项目中整合这三个框架,如何定义Action、Service、DAO层,以及如何配置Spring和MyBatis来协同工作。 总的来说,这个项目为学习者提供了一个全面了解和实践Struts2、...
【Struts2+Spring+MyBatis环境搭建】是指在Java Web开发中整合这三个开源框架,构建一个完整的MVC架构。Struts2作为表现层框架,负责处理HTTP请求和视图展示;Spring作为业务层框架,提供依赖注入和事务管理等功能;...
Struts2、Spring和MyBatis是Java Web开发中经典的三大框架,它们组合起来能够构建出高效、可维护性良好的企业级应用。本项目提供了一个基于这三个框架的简单搭建示例,下面将详细介绍这三个框架的核心功能及它们如何...
这种整合方式的优点在于,Struts2处理请求和视图展现,Spring负责业务逻辑和组件管理,MyBatis专注于数据库操作,三者分工明确,提高了代码的可维护性和可扩展性。同时,Spring的DI和AOP特性可以进一步降低各组件间...
SSM框架整合指的是将Spring、Struts2和MyBatis三个主流的Java开源框架结合在一起,以构建高效、灵活的企业级Web应用。这三个框架分别在应用程序的层管理、MVC模式实现和数据访问层有着各自的优势,组合使用可以提供...
整合Struts2、Spring和MyBatis可以实现松耦合的架构,提高代码的可测试性和可维护性。每个框架都能发挥其优势:Struts2处理HTTP请求,Spring管理bean和事务,MyBatis处理数据库操作。通过注解,开发者可以在不修改...
Struts2、Spring和MyBatis是Java Web开发中非常流行的三大开源框架,它们的集成使用,即SSM(Struts2-Spring-MyBatis)框架,为开发者提供了高效且灵活的解决方案。这个"struts2+spring+mybatis框架JAR包"集合了这三...
标题 "struts2 spring3 mybatis3整合简单例子" 涉及到的是Java Web开发中的三大主流框架——Struts2、Spring3和MyBatis3的整合应用。这是一个常见的企业级开发组合,用于构建高效、灵活的后端服务。 Struts2是一个...
一个简单的spring+struts2+hibernate+mybatis整合(数据库脚本放在项目资源文件的sql目录下) 因为没想好mvc用springmvc好,还是struts2好 所以没有整合进去
Eclipse+Struts2+Spring+MyBatis+jQuery整合教程,Eclipse+Struts2+Spring+MyBatis+jQuery整合教程.