java - 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 的上下文。
有很多示例如何使用休息控制器或 croned 服务来做到这一点,但是有没有办法实现我想要的?
解决方案
推荐阅读
- unity3d - C# 用于 Unity 脚本,关于变量范围的最佳实践
- powershell - 错误:Send-MailMessage 附件找不到文件
- jwt - 如何动态设置 JwtBearerOptions?
- winapi - MFC:有关如何在使用 COleDataSource::DoDragDrop() 后进行清理的冲突信息
- google-sheets - 从两个范围创建摘要
- sas - 如何对 SUM(Case) 进行 SAS 查询并使其在 Teradata SQL 中工作
- javascript - 如何使用 Leaflet 制作线性渐变图例
- c++ - 对所有用户有效的凭据提供程序 V2(磁贴)
- python - Python Chrome 驱动程序在 Safari 网络浏览器上单击阅读器视图
- syntax - PDDL forall 语法