1、問題復(fù)現(xiàn) spring 3.0 + hibernate 3.2 spring mvc使用注解方式;service使用@service注解 事務(wù)使用@Transactional 事務(wù)配置使用
在插入或更新數(shù)據(jù)時,無報錯,但數(shù)據(jù)庫中無結(jié)果,而查詢正常。疑為事務(wù)未提交。 2、問題檢查 當(dāng)修改dao層實現(xiàn)邏輯為:
可以正常提交插入、更新。確定為事務(wù)未提交。 3、問題分析 spring mvc使用注解方式時需要使用
方式用來掃描該包以及其子包下的@Controller注解的類,納入spring管理,而同時spring 容器也需要使用這種方式掃描包含@Service、@Components、@Required、@Autowired等注解用來管理bean和完成DI。 當(dāng)
出現(xiàn)在spring mvc的配置文件中時,web 容器在掃描包含@Service或@Components的類并包含@Transaction是,此時@Transaction并為完成,導(dǎo)致事務(wù)未被注冊。 4、問題解決 將spring mvc中掃描controller的context:component分成兩部分,將掃描其他目錄的context:component放入application.xml文件中(該文件為)org.springframework.web.context.ContextLoaderListener的加載文件。 如下配置:
和
|
|
來自: 昵稱15157082 > 《待分類1》