Struts1+Spring+Ibatis集成开发步骤(三)
步骤五:struts+spring 集成
在 struts 的配置文件 struts-config.xml 中以插件的方式集成spring,同时配置全局的委托代理(可选)。
注意:plug-in 插件必须写在配置文件的最后一项。
struts-config.xml配置文件:
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE struts-config PUBLIC
- "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
- "http://struts.apache.org/dtds/struts-config_1_2.dtd">
- <struts-config>
- <data-sources />
- <form-beans >
- </form-beans>
- <global-exceptions />
- <global-forwards />
- <action-mappings >
- </action-mappings>
- <!-- 集成Spring -->
- <!-- 全局委托代理 -->
- <controller>
- <set-property value="org.springframework.web.struts.DelegatingRequestProcessor" property="processorClass"/>
- </controller>
- <!-- 注入spring插件 -->
- <plug-in
- className="org.springframework.web.struts.ContextLoaderPlugIn">
- <set-property property="contextConfigLocation"
- value="/WEB-INF/applicationContext.xml"/>
- </plug-in>
- </struts-config>
步骤六:在Spring中配置事务管理—applicationContext.xml
- <?xml version="1.0" encoding="UTF-8"?>
- <beans
- xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:p="http://www.springframework.org/schema/p"
- xsi:schemaLocation="
- http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
- <!-- 配置数据源 -->
- <bean id="dataSource"
- class="org.apache.commons.dbcp.BasicDataSource"
- destroy-method="close">
- <!--JDBC驱动-->
- <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
- <!--数据库URL-->
- <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl" />
- <!--数据库用户名-->
- <property name="username" value="scott" />
- <!--数据库密码-->
- <property name="password" value="tiger" />
- </bean>
- <!-- 事务管理器 -->
- <bean id="transactionManager"
- class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
- <property name="dataSource" ref="dataSource" />
- </bean>
- <!-- 事务代理基类 -->
- <bean id="txProxyTemplate" abstract="true" lazy-init="true"
- class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
- <property name="transactionManager" ref="transactionManager"></property>
- <property name="transactionAttributes">
- <props>
- <prop key="do*">PROPAGATION_REQUIRED,-Exception</prop>
- </props>
- </property>
- </bean>
- </beans>
事务特性:
PROPAGATION_REQUIRED: 在当前的事务中进行,如果没有就建立一个新的事务
PROPAGATION_REQUIRES_NEW: 建立一个新的事务,如果现存一个事务就暂停它
PROPAGATION_MANDATORY: 方法必须在一个现存的事务中进行,否则丢出异常
PROPAGATION_NESTED: 在一个嵌入的事务中进行,如果不是,则同PROPAGATION_REQUIRED
PROPAGATION_NEVER: 指出不应在事务中进行,如果有就丢出异常
PROPAGATION_NOT_SUPPORTED: 指出不应在事务中进行,如果有就暂停现存的事务
PROPAGATION_SUPPORTS: 支持现在的事务,如果没有就以非事务的方式执行
事务应用:
- <bean id="EmpService" parent="txProxyTemplate">
- <property name="target">
- <bean class="com.test.EmpServiceImpl">
- <property name="empDao" ref="EmpDao"></property>
- </bean>
- </property>
- </bean>
注意:
不应该调用一个数据源的 getConnection()方法和Connection的close()方法,而必须使用Spring的 org.springframework.jdbc.datasource.DataSourceUtils类
如下:
Connection conn = DataSourceUtils.getConnection(dataSource);
…
DataSourceUtils.releaseConnection(conn, dataSource);
转载于:https://blog.51cto.com/375940084/823331
Struts1+Spring+Ibatis集成开发步骤(三)相关推荐
- Spring+Ibatis集成开发实例
首先简历数据库demo(本文选mysql) 数据库脚本: CREATE TABLE `ibatis` ( `id` varchar(20) NOT NULL, `name` varchar(2 ...
- spring cloud微服务分布式云架构 - Spring Cloud集成项目简介(三)
点击上面 免费订阅本账号! 本文作者:it菲菲 原文:https://yq.aliyun.com/articles/672242 点击阅读全文前往 Spring Cloud集成项目有很多,下面我们列举 ...
- Spring中AOP开发步骤
AOP:不是由Spring定义.AOP联盟的组织定义.Spring中的通知:(增强代码)前置通知 org.springframework.aop.MethodBeforeAdvice* 在目标方法执行 ...
- Spring boot 集成 ureport (三) 报表存储至数据库
声明:代码为核心代码,为了简洁!完整代码请移步我的github -->[带我传送到github] UReport2默认提供的名为"服务器文件系统"的报表存储机制,实际上是实现 ...
- liferay + struts2 + spring + ibatis整合开发案例
1 首先 开发的工程和案例是根据另外一个人博客进行开发的 开发地址如下: http://sweat89.iteye.com/blog/1686206 2 按照这位前辈的开发,搭建好后发现有很多问题, ...
- Spring Cloud应用开发(三:客户端的负载均衡)
1.Ribbon的使用 注:在石榴啊RestTemplate的方法上添加@LoadBalanced注解,并在其执行方法中使用服务实例的名称即可: 1.1.添加@LoadBalanced注解,在ms-s ...
- spring程序开发步骤
1.使用spring框架之前的开发步骤 2.使用spring之后的开发步骤 3.文字描述 1.导入Spring开发的基本依赖 2.编写Dao接口和实现类 3.创建spring核心配置文件 4.在spr ...
- dropwizard 连接mysql_Dropwizard入门及开发步骤
Dropwizard介绍 Dropwizard是一个微服务框架, 是各项技术的一个集成封装.它包含了以下组件: - 嵌入式Jetty,一个应用程序被打包成一个Jar文件,并开始自已嵌入的Jetty容器 ...
- python的常用集成开发环境_【分享|10个超好用的Python集成开发环境推荐】- 环球网校...
[摘要]在这个科学技术高速发展的时代,越来越多的人都开始选择学习编程软件,那么首先被大家选择的编程软件就是python,也用在各行各业之中,并被大家所熟知,所以也有越来越多的python学习者关注Py ...
- (Spring程序开发)简介程序开发步骤配置文件相关API
1Spring简介 1.1 Spring是什么 Spring是分层的Java SE/EE应用full-stack 轻量级开源框架, 以IoC(Inverse Of Control:反转控制) 和**A ...
最新文章
- 2020年智能车竞赛由预赛赛道拼接成决赛赛道的方案
- 在python中、下列代码的输出是什么-Python 面试中 8 个必考问题
- 在软盘上找不到id地址标记_记录一下我的群辉使用腾讯云域名解析IPv6地址
- 浅谈Base64编码算法
- JavaScript中判断是否存在某属性
- 查询各个分区的数据量_分库、分表、分区的区别,傻傻分不清?
- 幅度和幅值有区别吗_克拉克 (Clark) 变换中等幅值 (2/3) 和等功率 (sqrt(2/3)) 变换的公式推导...
- 同一台机器上安装2个SDE服务
- linux 测试环境启用jar_Linux下搭建测试环境
- 诱导公式的本质【转载】
- mysql之 OPTIMIZE TABLE整理碎片
- rhcsa第二天笔记
- dataframe先分组再画图
- 使用Lettuce执行命令,应该有多个返回值却只取到一个。
- wpe代理管家_wpe不能抓取封包
- c#中控制不能从一个case标签贯穿到另一个case标签是啥意思
- 请用java代码实现冒泡排序并输出,深夜思考
- 真香定律!java的微服务框架
- Go 事件驱动 实现事件的晌应和处理
- 手机连接小爱音箱15分钟后自动断开的解决办法
热门文章
- [Python]关键字is和操作符==
- serlvet配置xml和@WebServlet
- WINDOWS NT/2000下如何屏蔽CTRL+ALT+DEL
- [转载]云架构师的进阶之路
- Google Kickstart Round.B C. Diverse Subarray
- XML+Application来编写计数器(二)
- 在vue的项目中引入swiper插件
- Centos7-安装Gradle4.10
- HyperLedger Fabric 1.4 kafka生产环境部署(11.1)
- eclipse中的ctrl+H使用中的问题