【发布时间】:2021-02-07 03:20:09
【问题描述】:
我想通过 Groovy 脚本使用 Micronaut。好像@Inject和@PostConstruct等注解没有处理。
这是我试过的代码:
#!/usr/bin/env nix-shell
#!nix-shell -i groovy
@Grapes([
@Grab('ch.qos.logback:logback-classic'),
@Grab('io.micronaut:micronaut-runtime')
])
package org.sdf // NPE without package
import io.micronaut.runtime.Micronaut
import javax.inject.*
import javax.annotation.*
@Singleton
class Component {
}
@Singleton
class App implements Runnable {
@Inject
Component comp
@Override
@PostConstruct
public void run() {
// Never runs
assert this.comp != null
assert false
}
}
static void main(String... args) {
Micronaut.run(App, args);
}
它不运行 post-construct 方法并记录以下内容:
22:17:43.669 [main] DEBUG i.m.context.DefaultBeanContext - Resolved bean candidates [] for type: interface io.micronaut.runtime.EmbeddedApplication
22:17:43.671 [main] INFO io.micronaut.runtime.Micronaut - No embedded container found. Running as CLI application
如何在单文件 Groovy 脚本中使用具有依赖注入的 Micronaut?
【问题讨论】: