ssh 事务详细配置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ssh 事务详细配置相关的知识,希望对你有一定的参考价值。

最近再看 Spring 到了整合SSH的时候,觉得事务的配置那块还是不明白
求一个applicationContext.xml配置和祥解事务机制说明,最好把调用过程解释下

我把我的配置给你发过去下。我用了两个XML配置,这样将数据库相关配置和业务模块(其中也包括了Struts的action)的配置分隔开
F:\MyWork\tradeV3\src\applicationContext.xml 这个用于配置数据库的配置,不写了,基本自动由MyEclipse自动生成,楼主可以参照自己的。
F:\MyWork\tradeV3\src\beans.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"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<!-- 数据库事务处理配置 -->
<!--将事务管理交给spring,注册一个bean-->
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<!-- 事务处理的一个代理 -->
<bean id="baseTxProxy" lazy-init="true"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager">
<ref bean="transactionManager" />
</property>
<property name="transactionAttributes">
<props>
<prop key="log*">PROPAGATION_REQUIRED</prop>
<prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
<!-- 数据库事务处理配置完成 -->

<!-- Struts的Actions配置 -->
<bean name="/user" class="cn.nirack.struts.action.UserAction">
<property name="userService">
<ref bean="userService" />
</property>
</bean>
<bean name="/test" class="cn.nirack.struts.action.TestAction">
<property name="userService">
<ref bean="userService" />
</property>
</bean>
<!-- Struts的Actions配置 -->

<!-- 以下是 Service配置 -->
<!--在这里彻底完成声明式的事务处理,让你的service的bean继承那个事务处理的代理,建议这样配置-->
<bean id="userService" parent="baseTxProxy">
<property name="target">
<ref bean="userServiceTarget" />
</property>
</bean>
<bean id="userServiceTarget"
class="cn.nirack.service.impl.UserServiceImpl" abstract="false"
lazy-init="default" autowire="default" dependency-check="default">
<property name="userDao">
<ref bean="UserDAO" />
</property>
</bean>
</beans>
参考技术A 详细的楼上都写了..不过你要注意.接口的SET方法.还有DAO的SET方法就行了!

还有就是把所有东西拖管给spring

也就是在applicationContext.xml中写拖管就OK了!

ssh整合,从hibernate那个版本开始需要open session in view 才能开启事务?

事务才能生效?

参考技术A 如果ssh整合,你只需要在applicationContext.xml里配置事务,然后在要使用事务的地方标注相应的事务注解标签就可以了。并不需要手动开启事务和关闭事务,也不需要使用openSession来获得session,可以使用getcurrentsession来获取session,该session对象会在事务自动提交之后自动关闭。
如果你不使用spring,那么你需要自己控制懒加载和session的关闭。
希望回答对你有用。
参考技术B Hibernate 3.3本回答被提问者采纳

以上是关于ssh 事务详细配置的主要内容,如果未能解决你的问题,请参考以下文章

Linux下的/etc/ssh/ssh_config文件配置详解SSH配置文件相关参数详细说明

Linux ssh服务常用配置的详细描述及建议配置

git如何生成ssh密钥 git生成配置ssh密钥key详细步骤

centos7安装配置gitlab详细教程

详细分享TortoiseGit配置密钥的方法

jenkins+git详细配置及使用方法,为啥提示错误