Micronaut:micronaut 启动后如何运行某个类的方法?

问题描述

假设我编写了一个简单的类(它是用 Kotlin 编写的,但这个问题也适用于 Java):

class Bot {
    fun initialize() {
        val client: GatewaydiscordClient =
            discordClientBuilder.create("MY-TOKEN")
                .build()
                .login()
                .block()!!

        MajorEvent.createEvents(client)

        client.ondisconnect().block()
    }
}

运行 Micronaut 应用的基本方式如下:

fun main(args: Array<String>) {
    build()
        .args(*args)
        .packages("com.codenamite")
        .start()
}

如何使 Bot.initialize() 在启动时运行?我已经尝试在类上使用 @Singleton 注释,并在 @postconstruct 方法上使用 initialize(),但它似乎不起作用。

我试过了:

fun main(args: Array<String>) {
    build()
        .args(*args)
        .packages("com.codenamite")
        .start()
    val bot = Bot()
    bot.initialize()
}

它显然有效,但似乎 Bot.initialize() 超出了 Micronaut 的上下文。

有很多示例如何使用 rest 控制器或 cred 服务来做到这一点,但有没有办法实现我想要的?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)