问题描述
我正在使用 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 (将#修改为@)