微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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 举报,一经查实,本站将立刻删除。