Spring3.2+mybatis3.2+Struts2.3整合配置文件大全
0.配置文件目录

1.Spring配置
applicationContext-dao.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd "> <!-- 0.连接池属性设置读取指定的properties文件 -->
<context:property-placeholder location="classpath:db.properties" /> <!-- 1.将连接池放入spring容器 -->
<bean name="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="jdbcUrl" value="${jdbc.url}"></property>
<property name="driverClass" value="${jdbc.driver}"></property>
<property name="user" value="${jdbc.username}"></property>
<property name="password" value="${jdbc.password}"></property>
</bean> <!--2. 配置 Mybatis的会话工厂 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 数据源 -->
<property name="dataSource" ref="dataSource" />
<!-- 配置Mybatis的核心 配置文件所在位置 -->
<property name="configLocation" value="classpath:mybatis/SqlMapConfig.xml" />
</bean> <!-- 3.1 mapper代理配置方法一 这种方法需要大量重复的配置代理对象 MapperFactoryBean:根绝mapper接口生成代理对象
<bean id="selectUser" class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="mapperInterface" value="cn.qlq.core.dao.SelectUser"></property>
<property name="sqlSessionFactory" ref="sqlSessionFactory"></property> </bean> --> <!-- 3.2通过MapperScannerConfigurer扫描进行批量生成代理对象 遵循规范:mapper.java和mapper.xml名字一样且在同一个目录下
自动扫描出来的代理对象的id为mapper类类名(首字母小写) -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!-- 指定扫描的包名,如果有多个,用半角逗号分隔 -->
<property name="basePackage" value="cn.xm.exam.mapper"></property>
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
</bean> <!-- 4.配置事务管理器 -->
<!-- 事务核心管理器,封装了事务操作,依赖于连接池 -->
<bean name="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"></property>
</bean> <!-- 5.开启注解管理aop事务 -->
<tx:annotation-driven /> <!-- 事务模板对象,依赖于事务核心管理器 -->
<bean name="transactionTemplate"
class="org.springframework.transaction.support.TransactionTemplate">
<property name="transactionManager" ref="transactionManager"></property>
</bean> <!-- ················开始使用XML管理事务························ -->
<!-- 配置事务通知(无论哪种方式都要用到事务的核心管理器) -->
<tx:advice transaction-manager="transactionManager" id="firstTx">
<tx:attributes>
<!--以方法为单位,指定方法应用事务什么属性 isolation:隔离级别 read-only:只读属性 propagation:传播行为 -->
<!-- 企业中运用通配符命名规则。两套增删改查(8种) -->
<tx:method name="save*" isolation="DEFAULT" read-only="false"
propagation="REQUIRED" />
<tx:method name="add*" isolation="DEFAULT" read-only="false"
propagation="REQUIRED" />
<tx:method name="delete*" isolation="DEFAULT" read-only="false"
propagation="REQUIRED" />
<tx:method name="remove*" isolation="DEFAULT" read-only="false"
propagation="REQUIRED" />
<tx:method name="update*" isolation="DEFAULT" read-only="false"
propagation="REQUIRED" />
<tx:method name="modify*" isolation="DEFAULT" read-only="false"
propagation="REQUIRED" />
<tx:method name="get*" isolation="DEFAULT" read-only="true"
propagation="REQUIRED" />
<tx:method name="find*" isolation="DEFAULT" read-only="true"
propagation="REQUIRED" />
</tx:attributes>
</tx:advice> <!-- 配置织入 -->
<aop:config>
<!-- 配置切点表达式 --> <aop:pointcut expression="execution(* cn.xm.exam.service.impl.*.*ServiceImpl.*(..))"
id="texPc" />
<!-- 配置切面:切点+通知 advice-ref:通知名称 pointcut-ref:切点名称 -->
<aop:advisor advice-ref="firstTx" pointcut-ref="texPc" />
</aop:config> <aop:config>
<!-- 配置切点表达式 -->
<aop:pointcut expression="execution(* cn.xm.exam.service.impl.*.*.*ServiceImpl.*(..))"
id="secondPc" />
<!-- 配置切面:切点+通知 advice-ref:通知名称 pointcut-ref:切点名称 -->
<aop:advisor advice-ref="firstTx" pointcut-ref="secondPc" />
</aop:config>
</beans>
applicationContext-service.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd "> <!-- 4.开启组件自动扫描,也就是启用注解。前提是导入spring-context-3.2.xsd约束和引入新的命名空间 -->
<context:component-scan base-package="cn.xm.exam.service"></context:component-scan> </beans>
applicationContext-action.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd ">
<!-- 与struts2整合的配置 -->
<!-- 扫描Action基本包 -->
<context:component-scan base-package="cn.xm.exam.action"></context:component-scan> </beans>
2.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"> <struts>
<constant name="struts.i18n.encoding" value="utf-8"></constant>
<constant name="devMode" value="true"></constant>
<constant name="struts.enable.DynamicMethodInvocation" value="true" />
<constant name="struts.action.extension" value="action,do" />
<constant name="struts.objectFactory" value="spring"></constant> <!-- leilong -->
<include file="struts/question.xml"></include> <!-- 乔利强引入的 -->
<include file="struts/ExamPaper.xml"></include>
<include file="struts/Exam.xml"></include>
<include file="struts/Haul.xml"></include> </struts>
Exam.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"> <struts>
<package name="exam" namespace="/" extends="json-default,struts-default">
<!-- 全局结果集,将response转换为json传到前台 -->
<global-results>
<result name="success" type="json">
<param name="root">response</param>
</result>
</global-results> <!-- 添加考试 -->
<action name="exam_*" class="addExamAction" method="{1}"></action>
<!-- 查询考试 -->
<action name="findExam_*" class="findExamAction" method="{1}"></action>
<!--删除考试 -->
<action name="deleteExam" class="deleteExamAction"></action>
<!--修改考试 -->
<action name="UpdateExam_*" class="updateExamAction" method="{1}">
<!-- 将信息带到修改界面 (页面跳转的方式) -->
<result name="findExam">/view/examParper/exam/modifyExam.jsp</result>
<!-- 修改考试(ajax+json方式) -->
</action> <!-- 导出参考人员信息 -->
<action name="exportExamEmployees" class="extExamEmployeesAction">
<result type="stream">
<!-- 其他的参数在类中设置或者使用默认 -->
<param name="contentType">application/octet-stream</param>
<param name="inputName">inputStream</param>
<param name="contentDisposition">attachment;filename="${downloadFileName}"</param>
<param name="bufferSize">8192</param>
</result>
</action>
<!-- 导出试卷答案信息 -->
<action name="extPaperAnswer" class="extPaperAnswerAction">
<result type="stream">
<!-- 其他的参数在类中设置或者使用默认 -->
<param name="contentType">application/octet-stream</param>
<param name="inputName">inputStream</param>
<param name="contentDisposition">attachment;filename="${downloadFileName}"</param>
<param name="bufferSize">8192</param>
</result>
</action>
<!-- 导出试卷信息 -->
<action name="extPaper" class="extExamPaperAction">
<result type="stream">
<!-- 其他的参数在类中设置或者使用默认 -->
<param name="contentType">application/octet-stream</param>
<param name="inputName">inputStream</param>
<param name="contentDisposition">attachment;filename="${downloadFileName}"</param>
<param name="bufferSize">8192</param>
</result>
</action> </package>
</struts>
3.mybatis配置
SqlMapConfig.xml (主配置)
<?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> <!-- 只需要定义个别名,这个应该有 -->
<typeAliases>
<package name="cn.xm.exam.bean.common" />
<package name="cn.xm.exam.bean.employee" />
<package name="cn.xm.exam.bean.employee.in" />
<package name="cn.xm.exam.bean.employee.out" />
<package name="cn.xm.exam.bean.exam" />
<package name="cn.xm.exam.bean.grade" />
<package name="cn.xm.exam.bean.question" />
<package name="cn.xm.exam.bean.system" />
<package name="cn.xm.exam.bean.trainContent" />
</typeAliases>
</configuration>
mapper映射配置:(要与接口放在同一目录,且名字一样)
EmployeeOutCustomMapper.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.xm.exam.mapper.employee.out.custom.EmployeeOutCustomMapper"> <!-- S qlq -->
<!-- S 查询外部参考人员 -->
<select id="getExamEmployeeOuts" resultType="cn.xm.exam.vo.exam.ExamEmployeeOutQueryVo"
parameterType="hashmap">
SELECT
e.employeeId,
e.idcode,
e.name,
e.sex,
e.minusNum,
e.trainStatus,
u.name AS unitname
FROM employee_out e,
unit u
<where>
<include refid="getExamEmployeeOuts_where"></include>
</where>
ORDER BY u.name
</select>
<sql id="getExamEmployeeOuts_where">
<!-- 根据部门名称查询部门ID -->
<if test="1==1">
and e.unitId = u.unitId
</if>
<if test="unitNames !=null">
and e.unitId IN(SELECT
unitId
FROM unit
WHERE unit.name IN
<foreach collection="unitNames" item="unitName" separator=","
open="(" close=")">
#{unitName}
</foreach>
)
</if>
<if test="sex!=null">
and e.sex=#{sex}
</if>
<if test="idCode!=null">
and e.idCode=#{idCode}
</if>
<if test="trainStatus!=null">
and e.trainStatus=#{trainStatus}
</if>
<if test="name!=null">
and e.name like '%${name}%'
</if>
<if test="mixMinus!=null">
and e.minusNum>#{mixMinus}
</if>
<if test="maxMinus!=null">
and e.minusNum<#{maxMinus}
</if>
<!-- 如果选择进入黑名单扣分大于12 -->
<if test="isBlack!=null">
and e.minusNum>12
</if>
</sql>
<!-- E 查询外部参考人员 --> <!-- E qlq --> </mapper>
4.web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0">
<display-name>xm</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list> <listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/applicationContext-*.xml</param-value>
</context-param> <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>
</web-app>
Spring3.2+mybatis3.2+Struts2.3整合配置文件大全的更多相关文章
- Spring3.2+mybatis3.2+Struts2.3整合
1.Spring3.2不能用于JDK1.8,只能用于JDK1.7.JDK1.8用spring4.0. 2.导入的jar包 3.目录结构: 4.配置Spring 配置数据库信息: <?xml ve ...
- Maven整合Spring3.0+Mybatis3.2+Struts2.3+查找坐标+jar包依赖(五)
依赖传递 只添加了一个struts2-core依赖,发现项目中出现了很多jar,这种情况 叫 依赖传递
- Struts2.3.4.1+Spring3.2.3+Hibernate4.1.9整合
java教程|Struts2.3.4.1+Spring3.2.3+Hibernate4.1.9整合教程并测试成功一.创建项目二.搭建struts-2.3.4.11.struts2必须的Jar包(放到W ...
- Struts2中的 配置文件
struts2中涉及到的配置文件有: web.xml.struts.xml.struts.properties.default.properties.struts-default.xml web.xm ...
- SSH框架之Spring+Struts2+Hibernate整合篇
回顾 -Hibernate框架 ORM: 对象关系映射.把数据库表和JavaBean通过映射的配置文件映射起来, 操作JavaBean对象,通过映射的配置文件生成SQL语句,自动执行.操作数据库. 1 ...
- 简易的CRM系统案例之Struts2&Spring整合+Hibernate3+JSP+MySQL版本
主要对上一篇Struts2&Spring整合的改造 简易的CRM系统案例之Struts2+Hibernate3+JSP+MySQL版本 src/bean.xml <beans xmlns ...
- Struts2的核心配置文件
Struts2的详细配置: 配置的是struts2的核心配置文件:,在struts2的核心配置文件中主要有三个标签需要进行配置:package,action,result. 1. 配置package标 ...
- Struts2 更改校验配置文件位置
@(Java)[Struts|Interceptor] Struts2 更改校验配置文件位置 在Struts2中提供的拦截器校验ValidationInterceptor,该校验器中默认的配置文件位于 ...
- Spring与Struts2 的整合使用
Spring与Struts2 的整合使用 项目结构 再Struts2 中(还没有与Spring整合时),它创建Action类的依据 <action name="second" ...
随机推荐
- D. Dasha and Very Difficult Problem 二分
http://codeforces.com/contest/761/problem/D c[i] = b[i] - a[i],而且b[]和a[]都属于[L, R] 现在给出a[i]原数组和c[i]的相 ...
- 转】用Nodejs连接MySQL
原博文出自于: http://blog.fens.me/category/%E6%95%B0%E6%8D%AE%E5%BA%93/page/2/ 感谢! 用Nodejs连接MySQL 从零开始node ...
- Oracle中的表空间
表空间是什么? Oracle数据库包含逻辑结构和物理结构. 数据库的物理结构是指构成数据库的一组操作系统文件. 数据库的逻辑结构是指描述数据组织方式的一组逻辑概念及它们之间的关系. 表空间是数据库数据 ...
- 老式浏览器支持html5和css3
在IE页面的head标签里面加入 <!-[if IE]> <script src="http://html5shiv.googlecode.com/svn/trunk/ ...
- 桥接模式和php实现
桥接模式(Bridge Pattern): 将抽象部分与它的实现部分分离,使它们都可以独立地变化.它是一种对象结构型模式,又称为柄体(Handle and Body)模式或接口(Interface)模 ...
- iOS Programming Camera 2
iOS Programming Camera 2 1.1 Creating BNRImageStore The image store will fetch and cache the image ...
- sql把两值之和当作条件进行查询
目的:把表中两个字段之和作为where条件进行过滤查询 //查询在没有过期的记录select a,b from test where a+b>now();// a:存入时间 b:有效期时间段 进 ...
- 解决重置PostgreSQL 9.6密码的问题
一.PostgreSql9.6重置密码的方法: 1.打开windows服务管理器,找到“postgresql-x64-9.6”服务,停止服务. 2.找到PostgreSQL9.6的安装目录(以我的E盘 ...
- Winform之GDI绘制验证码
主要功能:点击验证码可更换,输入验证码进行登陆 需要导入命名空间System.Drawing; 产生五位的随机字符串: 1 Random random = new Random(); //产生5个随机 ...
- 迅为i.MX6UL核心板ARMCortex-A7单核NXP飞思卡尔工控行业Imx6核心板
iMX6UL核心板小巧精致,尺寸仅38mm*42mm:CPU型号iMX6UL@ 528MHz ARM Cortex-A7架构 :内存:512M DDR :存储:8G EMMC,低功耗,性能强大,性价比 ...