如何解决ConfigurationProperties 类不会从本机图像加载信息
我正在使用 Micronaut GraalVM 应用程序,我创建了一个类来使用 @ConfigurationProperties 从 application.yml 加载信息,当我运行我的 jar 应用程序时它可以工作,然后我构建了一个本机图像,但我的配置属性类没有加载任何信息,我尝试在 --initialize-at-build-time 中添加我的配置属性类,但这都不起作用,这是我的代码:
应用程序.yml
micronaut:
application:
name: mngraalvm
team:
name: 'Steelers'
color: 'Black'
player-names:
- 'Mason Rudolph'
- 'James Connor'
引擎.java
package com.msc.configurationprop;
public interface Engine {
String getName();
String getColor();
}
EngineConfig.java
package com.msc.configurationprop;
import io.micronaut.context.annotation.ConfigurationProperties;
import java.util.List;
@ConfigurationProperties("team")
class EngineConfig {
private String name;
private String color;
private List<String> playerNames;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public List<String> getPlayerNames() {
return playerNames;
}
public void setPlayerNames(List<String> playerNames) {
this.playerNames = playerNames;
}
}
EngineImpl.java
package com.msc.configurationprop;
import javax.inject.Singleton;
@Singleton
public class EngineImpl implements Engine {
private final EngineConfig config;
public EngineImpl(EngineConfig config) {
this.config = config;
}
public final EngineConfig getConfig() {
return config;
}
@Override
public String getName() {
return config.getName();
}
@Override
public String getColor() {
return config.getColor();
}
}
HomeController.java
@Controller("/home")
public class HomeController {
private final EngineImpl engineimpml;
@Get("/team")
public EngineImpl team() {
return this.engineimpml;
}
public HomeController(@Nullable EngineImpl engineimpml) {
this.engineimpml = engineimpml;
}
}
我是否需要在 Application.java 或其他配置中注入我的 EngineImpl 类? 谢谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。