Я пытаюсь настроить проект Micronaut (1.1.0.BUILD-SNAPSHOT
) с общим пакетом, используя многопроектную сборку Gradle, чтобы я мог разместить общую логику в одном месте.
Я столкнулся с проблемой при созданиифайл свойств для библиотеки.Я поместил некоторые специфичные для библиотеки свойства в 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
Полный пример доступен на Github .