Bootstrap

Spring Bean 初始化如何保证线程安全

创作内容丰富的干货文章很费心力,感谢点过此文章的读者,点一个关注鼓励一下作者,激励他分享更多的精彩好文,谢谢大家!


Spring Bean 中的参数通常有几种初始化方法:

通过构造函数注入:

@Service
public void MyService {
  private MyData myData;

  public MyService(MyData myData) {
    this.myData = myData;
  }
}

通过 setter 注入:

 
@Service
public void MyService {
  @Autowired
  private MyData myData;
}

也有可能在 PostConstruct 中指定初始化逻辑:

 
@Service
public void MyService {
  private MyData myData;

  @PostConstruct
  public void init() {
    this.myData = new MyData();
  }
}

我们知道 Spring 默认创建的 Bean 是单例的,那么 Bean 中的字段需要声明成 volatile 吗?

;