springmvc mybatis 注解的方式 事务不起作用解决方案

1、使用springmvc导致事务不起作用时,首先查看是否组件重复扫描问题导致

       由于采用的是SpringMVC、 MyBatis,故统一采用了标注来声明Service、Controller。服务器启动时的加载配置文件的顺序为web.xml---root-context.xml(Spring的配置文件)---servlet-context.xml(SpringMVC的配置文件),由于root-context.xml配置文件中Controller会先进行扫描装配,但是此时service还没有进行事务增强处理,得到的将是原样的Service(没有经过事务加强处理,故而没有事务处理能力),所以我们必须在root-context.xml中不扫描controller,同样,在springmvc的配置文件中不扫描service

application.xml



     




   
   
   
   




       
       
       

    
    

   


 
    
    
    
    
  




   
   
spring-mvc.xml

  
   
	
   
   
   	 
     
    
   
     
    
    	  
  		  
    


2、注意:查看mysql数据库引擎是否支持事务


3、查看依赖注入:

 1)spring默认使用jdk的动态代理添加事务/依赖注入,所以在往pring ioc容器中注册bean时,需要再实现类上加@Service、@Repository等。
 2)BaseDaoImpl、BaseDao 上不用使用注解。

 3)在依赖注入的时候,要使用接口的方式,eg:

  @Autowired

  public DemoService  demoServiceImpl;

你可能感兴趣的:(java)