首页 > 解决方案 > 有没有在 Micronaut 中使用 @PostConstruct 的正确方法?

问题描述

我试图在应用程序启动后打印一条消息@PostConstruct,但没有打印任何内容。

package dev.renansouza.server;

import javax.annotation.PostConstruct;
import javax.inject.Singleton;

@Singleton
public class ServerService {

    @PostConstruct
    public void print() {
        System.out.println("Hello!");
    }
}

我读过那@PostConstruct是懒惰的。这是否意味着我需要做其他事情才能使它起作用?

标签: javamicronaut

解决方案


如果使用 @PostConstruct 对您来说不是那么重要,您还可以使用 @EventListener 注释来实现您的目标。

例如,在您的情况下,您可以在任何类中添加以下代码来侦听应用程序启动事件。

@EventListener
void onStartup(ServerStartupEvent event) {
    println("Hey, I work from anywhere in project..")
}

上面共享的代码在 Groovy 中

请记住,在主应用程序类中添加的事件侦听器通常是根据我观察到的首先调用的。


推荐阅读