【发布时间】:2020-03-24 08:03:55
【问题描述】:
我的自定义 Spring Boot 启动器和用作依赖项的 Spring Boot 应用程序使用者遇到问题。我在两个 application.yml 中都有,但似乎我正在寻找的配置只有在消费者中定义时才有效。
我在启动器中的配置是这样的:
@Getter
@Setter
@Configuration
@ConfigurationProperties(prefix = "security")
public class StarterSecurityConfig {
private boolean jwtEnabled;
private String[] unsecuredPaths;
private String[] securedPaths;
}
我在 AutoConfiguration 类中定义了这个 bean:
@Bean
public StarterSecurityConfig starterSecurityConfig() {
return new StarterSecurityConfig();
}
拥有这个 application.yml 和另一个变量的消费者可以完美地检索到它:
security:
jwt-enabled: true
secured-paths:
- /user/**
unsecured-paths:
- /**
但是如果我从消费者那里删除它并将它放在启动器的 application.yml 中,那么启动器 bean 在创建它们时就没有这些属性。
也许我错过了什么?
【问题讨论】:
-
我们在这个用例中使用 Spring Cloud Common(引导上下文),如果你不关心你的启动器带来额外的依赖:spring.io/projects/spring-cloud-commons 实际上我们默认启用一些配置文件启用我们的配置,所以团队不必关心例如oauth 设置。
标签: java spring spring-boot