gistfile1.txt spring配置文档applicationContext.xml 业务逻辑层 @Transactional public int updateByID(Base base){ if(basePicMapper.updateByID(base.getBasePic())=0){ throw new RuntimeException(); } int i=2/0; if(baseMapper.updateByID(b
spring配置文档 applicationContext.xml 业务逻辑层 @Transactional public int updateByID(Base base){ if(basePicMapper.updateByID(base.getBasePic())<=0){ throw new RuntimeException(); } int i=2/0; if(baseMapper.updateByID(base)<=0){ throw new RuntimeException(); } return 1; } 控制层 @RequestMapping("updateTextPic") public String updateTextPic(Base model, HttpServletRequest request, HttpServletResponse response) { Base base=baseService.selectByID(model.getId()); base.setContent(model.getContent()); base.getBasePic().setLink(model.getBasePic().getLink()); baseService.updateByID(base); request.setAttribute("rdtPath","/admin/list/base"); return "/redirect_page"; } 这样没有回滚 一个声明bean实例的工具类 public class SpringUtil{ public Object getBean(String beanName){ ApplicationContext xtx=new ClassPathXmlApplicationContext("applicationContext.xml"); return xtx.getBean(beanName); } } 单元测试就可以回滚 applicationContext.xml配置bean 单元测试代码 public class MenutypeServiceTest { MenuTypeService menutypeService; @Before public void setUp() throws Exception { menutypeService =(MenuTypeService) (new SpringUtil()).getBean("menuTypeServices"); } @After public void tearDown() throws Exception { } @Test public void selectAll() throws Exception { System.out.println(menutypeService); } } 通过控制台调用不能回滚,通过单元测试调用就能回滚。为什么?试过在控制层里用SpringUtil从配置文档获取一个bean实例而不是自动注入,依然无法回滚。 另一个问题,需不需要判断插入、修改的语句返回值是否大于0?为什么?