当前位置: 首页 > 知识库问答 >
问题:

@PostConstruct不能在Play Framework 2.4中工作

葛修真
2023-03-14

我需要为我的bean类提供一些配置。在普通的Spring应用程序中,我使用@PostConstruct,但在Play 2.4中似乎不起作用

void init() {
}

共有1个答案

漆雕疏珂
2023-03-14

Guice不支持通过JSR250:Java平台的公共注释中的注释进行完整的组件生命周期管理。它们只实现JSR330:java的依赖项注入。然而,Play有一些有限的组件生命周期支持,并提供了在Play应用程序关闭时进行组件清理的可能性。

对于您为单例组件执行一些初始化任务的特定需求,我建议使用构造函数。您甚至可以通过构造函数注入来注入其他组件。

@Singleton
public class MyComponent {
    @Inject
    Logger log;

    @Inject
    public MyComponent(MyConfiguration conf) {
        conf.load();
        init();
    }

    public void init(){
        log.info("init");
    }
}
 类似资料:
  • 我正在建立一个“类缓存”,我想稍后调用类。 主要的目标是,我不希望每次需要类实例时都扫描上下文。 首先要评估缓存,我将缓存方法@AutoWired放在@RestController中,这会很好地工作。在调用rest方法时填充缓存。 完成之后,我将@AutoWired对象移动到@Service中,创建一个方法来自填充缓存。但这不起作用。调用@PostConstructor方法时不填充缓存。 如何使用

  • 我正在使用spring,我想在启动我的应用程序之前缓存一些数据。 我在其他帖子中找到了一些使用@PostConstruct来调用我的@Service方法的解决方案(这些方法被注释为@Cacheable),例如。如何在spring启动时加载@Cache?我这样做了,但当应用程序启动后,我调用RESTendpoint,它再次调用这个服务方法,它会在另一次发送数据库请求(所以它还没有缓存)。当我第二次向

  • 问题内容: SampleBean: 和配置文件是这样的: 而且我没有在bean标记上设置default-init-method属性。 任何机构都可以说出为什么@PostConstruct方法没有被调用的原因。 问题答案: 你需要(或)启用处理功能。

  • 我将HiberNate与Panache一起使用,并且需要在应用程序启动时添加用户。为此,我使用注释我的bean,然后我有一个带有注释的方法。 目前,我正在使用以下代码: 据我发现,当调用此方法时,不能保证所有内容都已经设置好,我想这就是为什么它有时会失败并出现错误的原因。我已经检查过这个问题,但由于它是针对 Spring 的,因此该方法不起作用,我没有找到任何类似的东西 Quarkus。 我是否缺

  • 我没有在Eclipse中获得javadoc(我想它被称为)弹出窗口,该弹出窗口提供了关于我当前悬停的Java/Android方法的详细信息。例如,如果我键入并点击Ctrl+Space,通常会出现一个弹出窗口,显示关于log.d方法的一些信息。这不会发生的。你有什么办法修好它吗?我最近升级到JDK1.7.0_06,我认为Java文档不知何故被冒烟了。我在S.O.上跟踪了几个不同的线索。试图修复它,但