Micronaut 属性 注入不适用于 Gradle 多项目构建
Micronaut property injection does not work with Gradle multi-project build
我正在尝试使用 Gradle 多项目构建的共享包来设置 Micronaut (1.1.0.BUILD-SNAPSHOT
) 项目,这样我就可以将通用逻辑放在一个地方。
我在为库创建 属性 文件时遇到了问题。我在 application.yml
中放置了一些特定于库的属性,但看起来它们没有被推送到应用层:
lib/src/main/java/lib/CommonSingeton.java
@Singleton
public class CommonSingleton {
public CommonSingleton(
@Value("${lib.testProperty}") String value
) {
System.out.println(value);
}
}
lib/src/main/resources/application.yml
lib:
testProperty: test
app/src/main/java/app/AppController.java
@Controller("/app")
public class AppController {
@Inject
private CommonSingleton commonSingleton;
@Get(produces = MediaType.TEXT_PLAIN)
public String index() {
return "Hello World";
}
}
错误是:
Unexpected error occurred: Failed to inject value for parameter [value] of class: lib.CommonSingleton
Message: Error resolving property value [${lib.testProperty}]. Property doesn't exist
Path Taken: AppController.commonSingleton --> new CommonSingleton([String value])
io.micronaut.context.exceptions.DependencyInjectionException: Failed to inject value for parameter [value] of class: lib.CommonSingleton
完整示例可用 on Github。
目前它被设计为只读取一个 application.yml
。如果您要从 app
中删除文件,它将从 lib
中读取。你可以提交一个问题让我们知道这是你想要的。 https://github.com/micronaut-projects/micronaut-core/issues
我正在尝试使用 Gradle 多项目构建的共享包来设置 Micronaut (1.1.0.BUILD-SNAPSHOT
) 项目,这样我就可以将通用逻辑放在一个地方。
我在为库创建 属性 文件时遇到了问题。我在 application.yml
中放置了一些特定于库的属性,但看起来它们没有被推送到应用层:
lib/src/main/java/lib/CommonSingeton.java
@Singleton
public class CommonSingleton {
public CommonSingleton(
@Value("${lib.testProperty}") String value
) {
System.out.println(value);
}
}
lib/src/main/resources/application.yml
lib:
testProperty: test
app/src/main/java/app/AppController.java
@Controller("/app")
public class AppController {
@Inject
private CommonSingleton commonSingleton;
@Get(produces = MediaType.TEXT_PLAIN)
public String index() {
return "Hello World";
}
}
错误是:
Unexpected error occurred: Failed to inject value for parameter [value] of class: lib.CommonSingleton
Message: Error resolving property value [${lib.testProperty}]. Property doesn't exist
Path Taken: AppController.commonSingleton --> new CommonSingleton([String value])
io.micronaut.context.exceptions.DependencyInjectionException: Failed to inject value for parameter [value] of class: lib.CommonSingleton
完整示例可用 on Github。
目前它被设计为只读取一个 application.yml
。如果您要从 app
中删除文件,它将从 lib
中读取。你可以提交一个问题让我们知道这是你想要的。 https://github.com/micronaut-projects/micronaut-core/issues