有这么一个工具类
@Service
@Data
public class A {
public Client client;
@PostConstruct
public void init(){
client = xxxxx;
}
}
在另一个类B中,注入该类并使用,是ok的。
a.client.xxx
某次提交后,就死活 a.client = null
了,必须得 a.getClient()
方法得到。
发现是因为 A 中定义了一个方法,并用了 @Async
注解。
@Async
注解加上后, 另一个类 B 中 a
是一个 cglib 实现的被加强的代理对象,里面的成员变量没有被正确初始化,都是 null,只能通过 get 方法通过反射获取到成员变量。
而没有加上前,a
是一个普通的被 spring 容器管理的 bean,只有需要AOP增强功能时,才被代理。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。