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" ...
随机推荐
- SpringBoot传参转换枚举
有时候,我们传参的时候,希望使用枚举类来当作参数 public enum VipEnum { HUANG(1, "黄钻"), HONG(2, "红钻"); pr ...
- spring-shiro 配置
配置 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www ...
- 用npm来部署快速一个httpweb服务器
https://blog.csdn.net/u012182627/article/details/55060594 http-server的安装######注意事项 安装http-server的时候 ...
- Html 内联元素、外联元素 和 可变元素
块元素(block element)一般是其他元素的容器元素 块元素一般都从新行开始,它可以容纳内联元素和其他块元素,常见块元素是段落标签'P".“form"这个块元素比较特殊,它 ...
- Caffe结构
caffe可以分为3层结构:blob,layer,net 在layer中,input data用bottom表示,output data用top表示.每一个layer定义了三种操作,setup(Lay ...
- Android反编译初步
网上关于Android反编译的帖子很多,反编译的步骤也是很详细,本文Android反编译参考博客:https://www.cnblogs.com/dhcn/p/7120891.html 而反编译中最主 ...
- iPhoneX 适配H5页面的解决方案
由于在iPhonex在状态栏增加了24px的高度,对于通栏banner规范的内容区域会有遮挡情况. 解决方案:在页面通栏banner顶部增加一层高度44px的黑色适配层,整个页面往下挪44px,这种做 ...
- P1759 通天之潜水(不详细,勿看)(动态规划递推,组合背包,洛谷)
题目链接:点击进入 题目分析: 简单的组合背包模板题,但是递推的同时要刷新这种情况使用了哪些物品 ac代码: #include<bits/stdc++.h> using namespace ...
- 关于C/C++的一些思考(1)
C++的前世今生: C的结构化思想: Ada的模版思想: Fortran的运算符重载思想: Simula的OO思想:封装,继承,多态: C++类型描述了变量的三个特征: 该类型在内存中占用物理空间的大 ...
- C#基础学习(二)
---恢复内容开始--- 面向对象 (类是不占内存,实例占内存) C#与python不用可以直接从另一个文件直接实例化一个类,不需要导包: ...