ssh 诡异事物配置 ,求解 这个事物是怎么搞的

rxw310915 2013-02-05 03:13:52
我在一个工程里找到的 ,跑的没问题,可以用。但是我要在里面加东西,事物加不上,看了原来工程的事物配置跟迷茫了,求解。原来工程配置如下:
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager" />
<!-- 配置事务拦截器bean -->
<bean id="transactionInterceptor"
class="org.springframework.transaction.interceptor.TransactionInterceptor">
<property name="transactionAttributes">
<props>
<prop key="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
<bean
class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames">
<list>
<value></value>
</list>
</property>
<property name="interceptorNames">
<list>
<value>transactionInterceptor</value>
</list>
</property>
</bean>
...全文
243 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
lvzg_005 2013-03-05
  • 打赏
  • 举报
回复
引用 3 楼 rxw310915 的回复:
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager" />在工程里没有任何地方引用,也没有注入datasource 。但是删除的话起到报错。我也不清楚人家是怎么搞的,我是在他的工程里加了些东西,但是我加的怎么加事物把我难住了。因为看原来工程的事物配置……
这段事务是使用代理,事务拦截器实现的,主要侧重点 <bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator"> <property name="beanNames"> <list> <value></value> </list> </property> 、、、、、 上面的list中的value是需要代理的类,类的中方法就会被事务拦截,从而实现事务一致性处理。 而list中可以使用通配符形式,比如*service,或者*DAO等等。如果自己要添加新的类,必须注意这点,不然事务不起作用
rxw310915 2013-03-05
  • 打赏
  • 举报
回复
引用 11 楼 chenzhi246265 的回复:
引用 9 楼 rxw310915 的回复:问下,service 和dao 需要同时加事物么 事物只要dao加了就行了,至于你那个问题不知道你添加的东西要不要和transactionAttributes关联,很久没用spring,忘的差不多了
事物可以配在 service 层啊 ,那我service 层 同时又删除 更新 怎么办,不就得加上事物么, 在servise 层 加上事物 ,dao 就不用加了好像 ,我看这么弄了也没出啥问题
chenzhi246265 2013-02-06
  • 打赏
  • 举报
回复
引用 9 楼 rxw310915 的回复:
问下,service 和dao 需要同时加事物么
事物只要dao加了就行了,至于你那个问题不知道你添加的东西要不要和transactionAttributes关联,很久没用spring,忘的差不多了
蜗牛之履 2013-02-05
  • 打赏
  • 举报
回复
没看明白,不好意思,我自己的问题
rxw310915 2013-02-05
  • 打赏
  • 举报
回复
问下,service 和dao 需要同时加事物么
  • 打赏
  • 举报
回复
<prop key="find*">PROPAGATION_NOT_SUPPORTED</prop> <prop key="delete*">PROPAGATION_REQUIRED,PROPAGATION_SUPPORTS,PROPAGATION_REQUIRES_NEW</prop> <prop key="update*">PROPAGATION_REQUIRED,PROPAGATION_SUPPORTS,PROPAGATION_REQUIRES_NEW</prop> 这几种,你网上搜下如何配置。
rxw310915 2013-02-05
  • 打赏
  • 举报
回复
我现在想在我的一些service操作里加上事物,但是不知道怎么加了。例如如下service 方法: public void deleteImage(int id, String userid) { BkImage image = bkImageDAO.findById(id); Common.deleteFile(image.getPath()); bkImageDAO.delete(image); } 就是我的一些service方法里有多个 更新,删除,新增等操作的时候我怎么给他加上事物,我写的dao 是用的getHibernateTemplate()这个写的,感觉spring自己给加上事物了 , 请教 一下,我这改怎么写啊
rxw310915 2013-02-05
  • 打赏
  • 举报
回复
那是所有dao操作呢,还是包括service 里的操作也加上事物了
  • 打赏
  • 举报
回复
告诉你关键的就是在这里了<prop key="*">PROPAGATION_REQUIRED</prop>*代表所有的操作,CRUD
rxw310915 2013-02-05
  • 打赏
  • 举报
回复
而且我现在也不明白原来工程的事物是怎么应用上去的。我在网上查了许久也没有找打答案。求各位好心人解答啊
rxw310915 2013-02-05
  • 打赏
  • 举报
回复
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager" />在工程里没有任何地方引用,也没有注入datasource 。但是删除的话起到报错。我也不清楚人家是怎么搞的,我是在他的工程里加了些东西,但是我加的怎么加事物把我难住了。因为看原来工程的事物配置读不明白,所以求解
求知路漫漫 2013-02-05
  • 打赏
  • 举报
回复
引用 1 楼 fangmingshijie 的回复:
这是spring的声明型事务配置方式。
这个没有弄过,楼主你的可以了吗? 我的疑问 transactionManager这个bean楼主好像没有在其它地方引用啊!难道spring的声明型事务不用在其它地方引用?
  • 打赏
  • 举报
回复
这是spring的声明型事务配置方式。 改这个就行了<prop key="*">PROPAGATION_REQUIRED</prop> key属性确定代理应该给哪个方法增加事务行为。这样的属性最重要的部份是传播行为。有以下选项可供使用: PROPAGATION_REQUIRED--支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。 PROPAGATION_SUPPORTS--支持当前事务,如果当前没有事务,就以非事务方式执行。 PROPAGATION_MANDATORY--支持当前事务,如果当前没有事务,就抛出异常。 PROPAGATION_REQUIRES_NEW--新建事务,如果当前存在事务,把当前事务挂起。 PROPAGATION_NOT_SUPPORTED--以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。 PROPAGATION_NEVER--以非事务方式执行,如果当前存在事务,则抛出异常。 PROPAGATION_NESTED--如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则进行与PROPAGATION_REQUIRED类似的操作。

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧