主题:Spring+weblogic在事务控制中出现的问题,请教
时间: 2020-08-27来源:ITEYE
前景提要
相关推荐: 一个spring管理hibernate事务的问题??? 『提问』这是什么错啊 spring入门实例-DAO,声明事务 Spring 学习笔记--强烈推荐 【经典】《Java170道面试笔试题全面含答案》涉及java/数据库/Spring框架/JVM/数据结构算法/设计模式相关 Java就业指导 java就业思路 Spring VS EJB (2)
推荐群组: JBPM @net
更多相关推荐
Spring Spring+weblogic在事务控制中出现的问题,insertUser()里面的两条语句一句成功一句失败时候事务并没有回滚而是实实在在的提交到数据库了,具体的配置及代码如下:spring配置文件如下: 〈?xml version="1.0" encoding="UTF-8"?〉 〈!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"〉 〈beans〉 〈!--定义JNDI数据源--〉 〈bean id="myDataSource" class="org.springframework.jndi.JndiObjectFactoryBean"〉 〈property name="jndiName"〉 〈value〉jdbc/OracleDatasource〈/value〉 〈/property〉 〈property name="resourceRef"〉 〈value〉false〈/value〉 〈/property〉 〈property name="jndiEnvironment"〉 〈props〉 〈prop key="java.naming.provider.url"〉 t3://localhost:7001 〈/prop〉 〈prop key="java.naming.factory.initial"〉 weblogic.jndi.WLInitialContextFactory 〈/prop〉 〈/props〉 〈/property〉 〈/bean〉 〈!--定义基于JDBC的事务管理--〉 〈bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"〉 〈property name="dataSource"〉 〈ref local="myDataSource" /〉 〈/property〉 〈/bean〉 〈!--定义具体的UserDao对象,基于JDBC操作模式--〉 〈bean id="UserDao" class="lyz.com.util.dao.UserDao"〉 〈property name="dataSource"〉 〈ref local="myDataSource" /〉 〈/property〉 〈/bean〉 〈!--对UserDao对象进行事务管理设定--〉 〈bean id="userDaoProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"〉 〈property name="proxyTargetClass"〉 〈value〉true〈/value〉 〈/property〉 〈property name="transactionManager"〉 〈ref local="transactionManager" /〉 〈/property〉 〈!--指定被管理的bean--〉 〈property name="target"〉 〈ref local="UserDao" /〉 〈/property〉 〈property name="transactionAttributes"〉 〈props〉 〈prop key="in*"〉PROPAGATION_REQUIRED〈/prop〉 〈prop key="*"〉PROPAGATION_REQUIRED,readOnly〈/prop〉 〈/props〉 〈/property〉 〈/bean〉 〈!--用来进行struts映射,具体填写方式同struts--〉 〈bean name="/login" class="com.lyz.struts.action.LoginAction" singleton="false"〉 〈property name="userDao"〉 〈ref local="UserDao" /〉 〈/property〉 〈property name="hibUserDao"〉 〈ref local="hibUserDao" /〉 〈/property〉 〈/bean〉 〈/beans〉 源代码如下: package lyz.com.util.dao; import javax.sql.DataSource; import org.springframework.jdbc.core.JdbcTemplate; public class UserDao { private JdbcTemplate jdbcTemplate; private DataSource dataSource; public void insertUser() { jdbcTemplate = new JdbcTemplate(getDataSource()); jdbcTemplate.update("insert into t_user values ('0007','xiaxin','001')"); jdbcTemplate.update("insert into t_user values ('0008','erica','002')"); } /** * @return Returns the datasource. */; public DataSource getDataSource() { return dataSource; } /** * @param datasource The datasource to set. */ public void setDataSource(DataSource dataSource) { this.dataSource = dataSource; } } 测试代码如下: package test.lyz.com.util; import junit.framework.TestCase; import lyz.com.util.dao.UserDao; import org.springframework.context.ApplicationContext; import org.springframework.context.support.FileSystemXmlApplicationContext; public class TestUserDao extends TestCase { ApplicationContext ctx = null; /* * @see TestCase#setUp() */ protected void setUp() throws Exception { super.setUp(); //PropertyConfigurator.configure("D:\\Develop\\Tools\\Eclips\\eclipse\\workspace\\SpringDev\\JavaSource\\log4j.properties"); ctx=new FileSystemXmlApplicationContext("D:\\Develop\\Tools\\Eclips\\eclipse\\workspace\\SpringWeb\\WebRoot\\WEB-INF\\applicationContext.xml"); } /* * @see TestCase#tearDown() */ protected void tearDown() throws Exception { super.tearDown(); } /** * Constructor for TestUser. * @param arg0 / public TestUser(String arg0) { super(arg0); } */ public void testGetUserName() { UserDao user = (UserDao)ctx.getBean("UserDao"); user.insertUser(); //org.springframework.transaction.interceptor.TransactionProxyFactoryBean // // assertEquals("测试user.getUserName()","liyongzhou",user.getUserName()); } }

科技资讯:

科技学院:

科技百科:

科技书籍:

网站大全:

软件大全:

热门排行