小编Gna*_*raz的帖子

spring单例bean字段未填充

我需要一个服务(单身适合)和一些内部字段,比如挂起的线程列表(是的,所有内容都写成线程安全的)问题是如果我@autowire这个bean,字段看起来是空的.调试我看到代理正确绑定到实例(字段 CGLIB$CALLBACK_X与填充的bean正确链接)和填充字段,但它提供的字段为空.

以下几行代码概括了我正在谈论的内容.

@Service
public class myService{

   @Autowired
   private Monitor monitor;

   public List getSomething(){
       return monitor.getList();
   }
}


@Service
public class myStatefulService{

   //This field will be populated for sure by someone before getSomething() is called
   private List list;

   public synchronized List getSomething(){
       return this.list;
   }

   //Called by other services that self inject this bean 
   public synchronized void addToList(Object o){
      this.list.add(o);
   }
}
Run Code Online (Sandbox Code Playgroud)

monitor我得到的getList调用期间调试变量

monitor => instance of correct class
 fields:
   CGLIB$BOUND => true
   CGLIB$CALLBACK_0.advised => proxyFactory …
Run Code Online (Sandbox Code Playgroud)

java spring

2
推荐指数
1
解决办法
3687
查看次数

标签 统计

java ×1

spring ×1