天天看點

當動态代理遇到ioc (二)cglib

public void sun.myproxybean.MyServiceImpl.multi()

@sun.myproxy.MY_TRANSACTIONAL()

public final void sun.myproxybean.MyServiceImpl$$EnhancerByCGLIB$$5b3ba48d.multi()

null

public abstract void sun.myproxybean.MyService.multi()

以下為第5點補充控制台日志:

public void sun.myproxybean.MyDaoImpl.multi()

public final void sun.myproxybean.MyDaoImpl$$EnhancerByCGLIB$$4b5f7f6c.multi()

public abstract void sun.myproxybean.MyDao.multi()

結論:

1 cglib生成子類時,不保留父類方法注解

2 由于注入的是cglib proxy,而@Autowired項對象在原始類,其父類上,而其父類原始對象沒有被ioc,故仍需要手動反哺

3 asm cglib容易包沖突