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的定义,都可以提取来单独定义

解决方案 »

  1.   

    1、你首先需要定义一个sessionFactory,这样就将数据库的链接交给spring来管理。
    2、可以照你那样做。
      

  2.   

    在研究SPRING的事务吧.
    1,楼上说的挺清楚了.
    2,<property   name="target"> 
    <ref   local="userDAO"/> 
    </property>
    你的BEAN里有一个OBJECT类型的变量,这里注入的是USERDAO.建议你看看夏昕的.SPRING专业开发指南.
      

  3.   

    [code=XML]
    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方法注入
      

  4.   

    大多数的IT教育与实际工作内容...... 
    大多数的IT教育与实际工作内容相差甚远,而且学的东西往往是早已过期的东西,华而不实,学的东西根本解决不了工作中难解决的棘手问题,问题的解决更多的需要经验和综合的能力,这个是因人而异的,根本不是学能学的通的,还是踏踏实实的学点真本事吧,什么是真本事,用的上的,能养家糊口的,登陆www.ityouku.com看看吧 
    月薪三级跳才是硬道理!!
      

  5.   


    <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>
     这样一段代码?
    我的意思是,把这么多的代码看作一个父类,然后需要的时候继承一下。请各位朋友帮忙,我就是不明白配置文件里边的这个地方的含义。还有怎样定义这些对象,在代码里边引用时候才不会出错。小弟口笨!望包涵
      

  6.   

    1.从配置文件来看是你没有注入userService,
    调用的时候如果不实例化当然就是空的啦,
    配置和dao一样配置就行了
    2.第二个地方是采用spring的事务声明,
    使方法受transaction控制,这个不是必须的吧,
    如果操作简单点的,没有什么事务的,大可不必这样写,
    一般只有在使用 OpenSessionInViewFilter管理session时这样使用
      

  7.   

    另外关于第二个问题可以看看这个文章比较详细
    http://blog.csdn.net/hangke/archive/2007/12/05/1917904.aspx
      

  8.   

    jprsfyy,你好。
    我后来把applicationContext.xml帖全了。这个配置是对的,项目可以运行。
    我的意思就是怎样在配置文件里边写,代码里边才能注入。我就是不知道怎样写,唉!!!第二,关于事务处理。我想,如果有10个DAO层都要事务处理,那得写10遍,代码多了去了。能否写一个事务处理,让其它需要事务处理的bean继承一下就ok了。不知道这样怎样实现。我的问题完了,分不够,我加。我只想弄懂。
      

  9.   

    还有人给我解答么?
    你们applicationContext怎么配的?才能用“实现接口”这个类的方法?