Spring boot @ConfigurationProperties 在启动期间未加载,因此它返回 null
Spring boot @ConfigurationProperties not loaded during start up as a result it's returing null
我正在使用 spring 引导版本 2.4.2 的 @Configuration 属性。应用程序启动似乎很好,但属性没有作为地图加载。请在下面的片段中找到示例代码
ApisConfig.java
@Getter
@Setter
@ConfigurationProperties(prefix = "apis")
@Component
@ToString
public class ApisConfig {
private Map<String, String> apisMap =new HashMap<>();
public String getRouteDetails(String key){
return this.apisMap.get(key);
}
}
下面是springboot注释的主应用
@ComponentScan(
basePackages = {"com.demo"})
@SpringBootApplication
@EnableConfigurationProperties(ApisConfig.class)
public class DemoApplication implements CommandLineRunner {
@Autowired
private ApisConfig apisConfig;
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@Override
public void run(String... args) throws Exception {
apisConfig.getRouteDetails("qna");
}
}
以下是位于 src/main/resources
下的属性文件
apis.apisMap.qna=10.0.0.254
apis.apisMap.adapter=10.0.0.254
server.port=6165
以下是我用于构建的工具
- Gradle
- IntelliJ 创意
- Spring 启动 2.4.2
感谢任何帮助
我找到了解决办法。 @AndyWilkinson 谢谢你的指点。 Lombok 未正确设置,因此未正确选取 apisMap。我已经修复它并开始像 gem 一样工作。我已将以下依赖项添加到 build.gradle 文件并开始工作
annotationProcessor 'org.projectlombok:lombok'
我正在使用 spring 引导版本 2.4.2 的 @Configuration 属性。应用程序启动似乎很好,但属性没有作为地图加载。请在下面的片段中找到示例代码
ApisConfig.java
@Getter
@Setter
@ConfigurationProperties(prefix = "apis")
@Component
@ToString
public class ApisConfig {
private Map<String, String> apisMap =new HashMap<>();
public String getRouteDetails(String key){
return this.apisMap.get(key);
}
}
下面是springboot注释的主应用
@ComponentScan(
basePackages = {"com.demo"})
@SpringBootApplication
@EnableConfigurationProperties(ApisConfig.class)
public class DemoApplication implements CommandLineRunner {
@Autowired
private ApisConfig apisConfig;
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@Override
public void run(String... args) throws Exception {
apisConfig.getRouteDetails("qna");
}
}
以下是位于 src/main/resources
下的属性文件apis.apisMap.qna=10.0.0.254
apis.apisMap.adapter=10.0.0.254
server.port=6165
以下是我用于构建的工具
- Gradle
- IntelliJ 创意
- Spring 启动 2.4.2
感谢任何帮助
我找到了解决办法。 @AndyWilkinson 谢谢你的指点。 Lombok 未正确设置,因此未正确选取 apisMap。我已经修复它并开始像 gem 一样工作。我已将以下依赖项添加到 build.gradle 文件并开始工作
annotationProcessor 'org.projectlombok:lombok'