锁定老帖子 主题:有办法简化spring中的事务管理配置吗
该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2005-04-15
lyz0726 写道 只要使用abstract就会报错
If you're using xmlbuddy,pls take a look at YOUR_WORKSPACE\.metadata\.plugins\com.objfac.xmleditor\.cache\meta.xml,then will find the answer. Yes,old version spring dtd was cached. |
|
返回顶楼 | |
发表时间:2005-04-24
toney_kissinger 写道 看过之过大受启发。有一个疑问,每一个service bean还是要作一次声明注册,能不能将所需的service bean统一放到一个list列表中,这样有每增加一个service bean时只需增加其中的一个元素,而不用再写一个完整的注册。
应该有这样的方式吧,这应该是需求中经常遇到的,应该有这个解决方法,目前好像只有用 proxyBean,比如 BeanNameAutoProxyCreator 才可以 :( |
|
返回顶楼 | |
发表时间:2005-06-24
我想问问de3light I'm impossible, Readonly, chinakite:
我现在就不知道这样配置后service的代码如何写请恕我问这个低级问题: 是应该这样写: public void insertTest(); throws DataAccessException { mTaskDAO.insertTableA();; mTaskDAO.insertTableB();; } 还是应该这样写呢: public void insertTest(); throws DataAccessException { TransactionTemplate transTemplate = new TransactionTemplate(app.getTransactionManager(););; transTemplate.execute(new TransactionCallbackWithoutResult(); { protected void doInTransactionWithoutResult(TransactionStatus status); { mTaskDAO.insertTableA();; mTaskDAO.insertTableB();; } });; } |
|
返回顶楼 | |
发表时间:2005-06-27
按你第一种写法就可以了,顺便给出例子:
bean配置文件片段: <bean id="baseTxProxy" lazy-init="true" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> <property name="transactionManager"> <ref local="myTransactionManager" /> </property> <property name="transactionAttributes"> <props> <prop key="add*">PROPAGATION_REQUIRED,-DataAccessException</prop> <prop key="find*">PROPAGATION_REQUIRED,readOnly,-DataAccessException</prop> <prop key="update*">PROPAGATION_REQUIRED,-DataAccessException</prop> <prop key="delete*">PROPAGATION_REQUIRED,-DataAccessException</prop> <prop key="do*">PROPAGATION_REQUIRED,-DataAccessException</prop> <prop key="*">PROPAGATION_REQUIRED,readOnly,-DataAccessException</prop> </props> </property> </bean> <bean id="itemService" parent="baseTxProxy"> <property name="target"> <bean class="com.neusoft.percheron.middle.base.service.ItemServiceImpl"> <property name="itemMasterDAO"><ref local="itemMasterDAO"/></property> </bean> </property> </bean> <bean id="itemMasterDAO" class="com.neusoft.percheron.eis.dao.ItemMasterDAOImpl"> <property name="sessionFactory"><ref local="mySessionFactory"/></property> </bean> Java代码 - Service: public class ItemServiceImpl extends BaseService implements ItemService { private ItemMasterDAO itemMasterDAO = null; public void setItemMasterDAO(ItemMasterDAO itemMasterDAO) { this.itemMasterDAO = itemMasterDAO; } /** * 取得一个商品的信息,如果数据库中无此商品则返回null. * @param itemcode 商品编号 * @return 商品信息ItemMaster. * @throws DataAccessException */ public ItemVO getItemMaster(String itemcode) throws DataAccessException { ItemMaster im = (ItemMaster)itemMasterDAO.getObject(ItemMaster.class,itemcode); ItemVO itemvo = new ItemVO(); if(im != null){ itemvo = new ItemVO(); itemvo.setItemcode(im.getItemcode()); itemvo.setItemdesc(im.getItemdesc()); }else{ itemvo = null; } return itemvo; } } 这样就OK了,同时使用多个DAO中的方法时注意事务的策略 org.springframework.transaction.TransactionDefinition接口中有定义 |
|
返回顶楼 | |
发表时间:2005-07-05
真是不错,以前还一纳闷着,今天终于解决了,谢谢啦!
|
|
返回顶楼 | |
发表时间:2005-09-06
嗯,其实就是把事务从DAO层提升到Service层. 不错.
|
|
返回顶楼 | |
发表时间:2006-10-15
我的baseTransactionProxy和业务service想配置在不同的xml文件里,这样直接指定parent="baseTransactionProxy"就会有问题,请问有办法吗
|
|
返回顶楼 | |
发表时间:2006-10-17
JAVA_ED 写道 我的baseTransactionProxy和业务service想配置在不同的xml文件里,这样直接指定parent="baseTransactionProxy"就会有问题,请问有办法吗
有什么问题?我们就是这么做的,没有问题,你把遇到的问题详细地描述一下,包括抛出的异常等等 |
|
返回顶楼 | |