java - Spring 安全出版

标签 java spring concurrency safe-publication

我知道类似的问题已被问过多次,但我仍然找不到唯一正确的答案。

public class SimpleMovieLister {

  private MovieFinder movieFinder;

  public void setMovieFinder(MovieFinder movieFinder) {
      this.movieFinder = movieFinder;
  }
  //getter
}

为什么我们不让 movieFinder 变得不稳定? Spring 上下文是否有一些非常好的魔法来建立 SimpleMovieLister 的安全发布? 或者某些线程可以在 movieFinder 方法调用上获得 NPE?

其实这个answer澄清了我正在谈论的问题,但它没有说明或反驳 Spring 阻止该问题的能力。所以我想知道是否有 100% 正确的答案。

最佳答案

Spring 确保在容器初始化完成后,可以从任何线程安全地访问您急切初始化的单例。

如果您有一个原型(prototype) bean,由一个线程按需创建,然后发布到其他线程,那么在线程安全方面您就得靠自己了。

关于java - Spring 安全出版,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20495313/

相关文章:

java - 我可以通过mysql触发器执行mysql之外的任何程序吗?

java - Activity 启动后出现 DatabaseObjectNotClosedException

security - Grails spring-security-core插件问题:User类中的密码不是字符串

java - spring boot 运行多个应用

c - Execvp 输出太大时挂起?

java - 如何在新选项卡中打开 PDF 并在浏览器中显示(不要求下载)?

java - Spring MVC,两个配置实例而不是一个

c# - 如何跨 AppDomain 边界传递 CancellationToken?

Java 线程 : Futures only using results from first and last thread

java - 在 Google map 上绘制自定义 map 图 block 图像 (.pngs) - Android