你在保存的方法加上TRY  catch 看看估计是异常没有抛出来吧

解决方案 »

  1.   

    XmlBeanFactory 仅仅是Bean工厂,用于生成和管理Bean的,那些AOP等高级特性是在ApplicationContext里,而事务恰恰是用AOP方式实现的。所以第二种方式必须要得到ApplicationContext对象才行。
      

  2.   

    你可以看下第二种方式的service对象,返回的并不是代理对象,自然无法使用事务了
      

  3.   


    没可能噢,如果有异常,没有try也会抛的。
      

  4.   


    第二种方式也是从ApplicationContext开始加载的。
      

  5.   


    不太明白,什么是代理对象?怎么知道是不是代理对象?spring 对事物的处理是通过动态代码来实现的,你拿到的是代理对象才能进行事物处理,而代理对象一般是事务工厂实现了InitializingBean的afterPropertiesSet方法中返回,ClassPathXmlApplicationContext最终是有实现这个接口,而XmlBeanFactory 没有。你可以打个断点比较下两个service对象
      

  6.   

    应该说ClassPathXmlApplicationContext使用的是你配置的实现了InitializingBean的beanFactory获得service,而它返回的是代理对象,而XmlBeanFactory 使用的就是这个beanFactory。返回得是普通bean
      

  7.   


    第二种方式也是从ApplicationContext开始加载的。xmlbeanfactory怎么会是从applicationcontext开始加载的?xmlbeanfactory是原始beanfactory的一种实现方式,beanfactory和applicationcontext是两种容器,不同的init。从beanfactory的集成体系中你能找到applicationcontext的影子?