public interface Service {
public void doSomething();
}
@Service
public class MyService implements service{
@Transactional
public void doSomething(){
}
}
@Controller
public class MyController {
@Autowired
private MyService service;
}
在上述情況下,自動裝配失敗,例外「illegalArgumentException : argument type mismatch
」。當我從MyService中刪除implements service
時,一切正常。彈簧豆執行接口
我已經搜索並發現在applicationContext.xml中的地方<aop:aspectj-autoproxy proxy-target-class="true"/>
成功的自動裝配和它的工作。 我還發現,當使用@Transactional時,Spring使用JDK代理。
我有一些困惑,
- 如何@Transactional涉及到代理
- 爲什麼Spring使用JDK代理爲它實現的接口豆。
- 爲什麼我需要把
<aop:aspectj-autoproxy proxy-target-class="true"/>
在applicationContext.xml中
任何人都可以請解釋?或向我推薦任何文章或博客
服務 - >服務? – abalogh