浏览 6109 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2005-03-22
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()); } } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2005-03-22
自己顶一下,期待有那位同仁能够予以协助
![]() |
|
返回顶楼 | |
发表时间:2005-03-22
UserDao user = (UserDao)ctx.getBean("UserDao");
从你配置文件来看,你应该使用proxy后的dao。 |
|
返回顶楼 | |
发表时间:2005-03-22
rongsantang 写道 UserDao user = (UserDao)ctx.getBean("UserDao");
从你配置文件来看,你应该使用proxy后的dao。 不明白什么意思,请明示 |
|
返回顶楼 | |
发表时间:2005-03-23
也就是说你应该UserDao user = (UserDao) ctx.getBean("userDaoProxy");
这样取出的才是经过proxy过的。 |
|
返回顶楼 | |
发表时间:2005-03-23
action中
引用 〈property name="userDao"〉 〈ref local="UserDao" /〉 〈/property〉 修改成 〈property name="userDao"〉 〈ref local="userDaoProxy" /〉 〈/property〉 |
|
返回顶楼 | |
发表时间:2005-03-24
谢谢楼上各位老大
终于搞定了 此问题可是迷惑了我好多天,谢谢!!! |
|
返回顶楼 | |