sessionFactory这个bean没有定义,我认为会报错把~
org.springframework.transaction.interceptor.TransactionProxyFactoryBean在这个类里面要注入4个对象:
1.<property name="target">
<ref local="userDAO"/>
</property>
2.<property name="transactionAttributes"> 这个是一个属性对
你看下这个TransactionProxyFactoryBean类的source code,里面肯定有setTarget方法和setTransactionAttributes方法还有只要是有关bean的定义,都可以提取来单独定义
org.springframework.transaction.interceptor.TransactionProxyFactoryBean在这个类里面要注入4个对象:
1.<property name="target">
<ref local="userDAO"/>
</property>
2.<property name="transactionAttributes"> 这个是一个属性对
你看下这个TransactionProxyFactoryBean类的source code,里面肯定有setTarget方法和setTransactionAttributes方法还有只要是有关bean的定义,都可以提取来单独定义
解决方案 »
- 交给spring管理的struts2的action,如何在超链接上传递参数?
- java不用过滤器怎么实现字符过滤?
- struts+mysql的中文乱码问题,急!
- 请教cewolf+jfreechart 做双轴折线图的问题
- [求救]请高手近来帮忙解释一下!
- 怪异Struts Logic Iterator Tag问题
- 两个实体bean的关联问题(如何执行?jbx+wls8.1)
- 一个很弱的问题:javaBean和EJB是不是一回事?
- JAVABEAN能不能调用在Weblogic上布置好的 Tx DataSource Pool呢
- springMvc 的问题
- 问一个有关电子商务数据库的设计问题
- 菜鸟发问:请问对象持久化有什么好处,为什么要进行持久化?
2、可以照你那样做。
1,楼上说的挺清楚了.
2,<property name="target">
<ref local="userDAO"/>
</property>
你的BEAN里有一个OBJECT类型的变量,这里注入的是USERDAO.建议你看看夏昕的.SPRING专业开发指南.
1-------------------------------
<bean id="userDAO" class="com.yu.bbs.daoimpl.UserDAOImpl">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean> 2-------------------------------
<bean id="userDAOProxy" lazy-init="true" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager">
<ref local="transactionManager"/>
</property>
<property name="target">
<ref local="userDAO"/>
</property>
<property name="transactionAttributes">
<props>
<prop key="save*"> PROPAGATION_REQUIRED,-OrderException,- OrderMinimumAmountException </prop>
<prop key="add*"> PROPAGATION_REQUIRED,-OrderException,-OrderMinimumAmountException </prop>
<prop key="modify*"> PROPAGATION_REQUIRED,-OrderException,-OrderMinimumAmountException </prop>
</props>
</property>
</bean> 首先有property的地方都会有set/get方法,
其次所有bean对象都是由spring来管理,
最后有ref的地方,前后一定会有一个被ref的对象的定义,且该对象早于被引用之前创建,并在引用的时候通过set方法注入
大多数的IT教育与实际工作内容相差甚远,而且学的东西往往是早已过期的东西,华而不实,学的东西根本解决不了工作中难解决的棘手问题,问题的解决更多的需要经验和综合的能力,这个是因人而异的,根本不是学能学的通的,还是踏踏实实的学点真本事吧,什么是真本事,用的上的,能养家糊口的,登陆www.ityouku.com看看吧
月薪三级跳才是硬道理!!
<beans>
<!-- setup dataSource -->
<bean id="dataSource_MySQL" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName">
<value>com.mysql.jdbc.Driver</value>
</property>
<property name="url">
<value>jdbc:mysql://192.168.1.99:3306/ydg</value>
</property>
<property name="username">
<value>root</value>
</property>
<property name="password">
<value>root</value>
</property>
</bean> <!-- setup sessionFactory -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource_MySQL" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="jdbc.batch_size">1024</prop>
<prop key=" hibernate.show_sql">true</prop>
<prop key="hibernate.cglib.use_reflection_optimizer">true</prop>
</props>
</property>
<property name="mappingDirectoryLocations">
<list>
<value>classpath:/com/yu/bbs/model</value>
</list>
</property>
</bean> <!-- setup transactionManager -->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean> <!-- UserDAO -->
<bean id="userDAO" class="com.yu.bbs.daoimpl.UserDAOImpl">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>
<!-- businessService & data access object -->
<bean id="userDAOProxy" lazy-init="true" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager">
<ref local="transactionManager"/>
</property>
<property name="target">
<ref local="userDAO"/>
</property>
<property name="transactionAttributes">
<props>
<prop key="save*">PROPAGATION_REQUIRED,-OrderException,-OrderMinimumAmountException</prop>
<prop key="add*">PROPAGATION_REQUIRED,-OrderException,-OrderMinimumAmountException</prop>
<prop key="modify*">PROPAGATION_REQUIRED,-OrderException,-OrderMinimumAmountException</prop>
</props>
</property>
</bean>
<bean name="/log" class="com.yu.bbs.action.LoginAction" singleton="false">
<property name="userDAO">
<ref bean="userDAOProxy" />
</property>
</bean>
</beans>
不好意思,各位。可能我没说清楚。开始也没帖完整,这次帖完整了(咱们当这个applicationContext.xml是可以运行的,不要管有没有sessionFactory的问题)【1】我最迷惑的地方就是-----例如我在一个Action内写到 private UserDAO userDAO;,然后就可以在这个Action内用到userService内的方法。到底是在配置文件内怎么配置的,userService才不会是空???【2】可以说UserDAO是一个要被注入的对象么?像这样的对象不止这一个哦,那在配置文件里边,每写一个,都要有<bean id="userDAOProxy" lazy-init="true" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager">
<ref local="transactionManager"/>
</property>
<property name="target">
<ref local="userDAO"/>
</property>
<property name="transactionAttributes">
<props>
<prop key="save*">PROPAGATION_REQUIRED,-OrderException,-OrderMinimumAmountException</prop>
<prop key="add*">PROPAGATION_REQUIRED,-OrderException,-OrderMinimumAmountException</prop>
<prop key="modify*">PROPAGATION_REQUIRED,-OrderException,-OrderMinimumAmountException</prop>
</props>
</property>
</bean>
这样一段代码?
我的意思是,把这么多的代码看作一个父类,然后需要的时候继承一下。请各位朋友帮忙,我就是不明白配置文件里边的这个地方的含义。还有怎样定义这些对象,在代码里边引用时候才不会出错。小弟口笨!望包涵
调用的时候如果不实例化当然就是空的啦,
配置和dao一样配置就行了
2.第二个地方是采用spring的事务声明,
使方法受transaction控制,这个不是必须的吧,
如果操作简单点的,没有什么事务的,大可不必这样写,
一般只有在使用 OpenSessionInViewFilter管理session时这样使用
http://blog.csdn.net/hangke/archive/2007/12/05/1917904.aspx
我后来把applicationContext.xml帖全了。这个配置是对的,项目可以运行。
我的意思就是怎样在配置文件里边写,代码里边才能注入。我就是不知道怎样写,唉!!!第二,关于事务处理。我想,如果有10个DAO层都要事务处理,那得写10遍,代码多了去了。能否写一个事务处理,让其它需要事务处理的bean继承一下就ok了。不知道这样怎样实现。我的问题完了,分不够,我加。我只想弄懂。
你们applicationContext怎么配的?才能用“实现接口”这个类的方法?