从外部 jar 加载 @Singleton Beans
Loading @Singleton Beans from external jar
我正在尝试从外部 jar 中加载一些 class 到我的 micronaut CLI 应用程序 (cli.jar) 中,用 @singleton 注释希望它们将被注入到应用程序中。这不会发生,即使 classes 实际上打包(阴影)在 cli.jar 中。我试着用 java -verbose 查看 class 是否在 class 加载程序中,而它们不是。
它可以与 micronaut 一起使用吗?
确保外部 JAR 也配置了注释处理,以便使用 @Singleton
注释的 类 生成适当的 bean 元数据
根据格雷姆的提示,这是解决方案。这是一个 build.gradle 的工作设置:
plugins {
id 'java'
id "io.spring.dependency-management" version "1.0.6.RELEASE"
}
group 'xyz.transformercli'
version '1.0-SNAPSHOT'
sourceCompatibility = 11
repositories {
mavenCentral()
}
dependencyManagement {
imports {
mavenBom 'io.micronaut:micronaut-bom:1.0.3'
}
}
dependencies {
annotationProcessor "io.micronaut:micronaut-inject-java"
//my jar with base classes
compile files('libs/transformer-cli-0.1.jar')
compile "io.micronaut:micronaut-inject"
}
我正在尝试从外部 jar 中加载一些 class 到我的 micronaut CLI 应用程序 (cli.jar) 中,用 @singleton 注释希望它们将被注入到应用程序中。这不会发生,即使 classes 实际上打包(阴影)在 cli.jar 中。我试着用 java -verbose 查看 class 是否在 class 加载程序中,而它们不是。
它可以与 micronaut 一起使用吗?
确保外部 JAR 也配置了注释处理,以便使用 @Singleton
注释的 类 生成适当的 bean 元数据
根据格雷姆的提示,这是解决方案。这是一个 build.gradle 的工作设置:
plugins {
id 'java'
id "io.spring.dependency-management" version "1.0.6.RELEASE"
}
group 'xyz.transformercli'
version '1.0-SNAPSHOT'
sourceCompatibility = 11
repositories {
mavenCentral()
}
dependencyManagement {
imports {
mavenBom 'io.micronaut:micronaut-bom:1.0.3'
}
}
dependencies {
annotationProcessor "io.micronaut:micronaut-inject-java"
//my jar with base classes
compile files('libs/transformer-cli-0.1.jar')
compile "io.micronaut:micronaut-inject"
}