Spring-Boot多模块无法从另一个模块读取属性文件

我搜寻了高低,但仍然无法找到这个非常烦人的问题的简单答案,

我遵循了这个很棒的指南: 带有多服务应用程序的JWT 一切都很好,但是在指南的最后,我们建议创建一个config-service(module),我已经完成了。

问题是我无法覆盖JwtConfig类的默认配置

项目结构如下:

-config-service

| JwtConfig.java

\

| resources

\

| jwtConfig.properties

-other-service (add dependency in the pom file of the config-service)

|

someOtherclass.java (import the JwtConfig class & using @Bean to initialize )

/*all the imports*/ 

@PropertySource(value = "classpath:jwtConfig.properties")

public class JwtConfig {

@Value("${security.jwt.uri:/auth/**}")

private String Uri;

@Value("${security.jwt.header:Authorization}")

private String header;

@Value("${security.jwt.prefix:Bearer }")

private String prefix;

@Value("${security.jwt.expiration:#{24*60*60}}")

private int expiration;

@Value("${security.jwt.secret:JwtSecretKey}")

private String secret;

//getters

/*imports*/

@Configuration

@EnableWebSecurity

public class SecurityCredentialsConfig extends WebSecurityConfigurerAdapter

{

private JwtConfig jwtConfig;

@Autowired

public void setJwtConfig(JwtConfig jwtConfig) {

this.jwtConfig = jwtConfig;

}

@Bean

public JwtConfig jwtConfig() {

return new JwtConfig();

}

/*other code*/

问题在于,我在jwtConfig.properties文件中输入的参数并不重要,

例如:

   security.jwt.uri=test

当其他服务加载它时,它不会出现在JwtConfig bean中。

只加载默认的@Value。

有人可以提些建议吗?我该如何解决?非常感谢!

回答:

看完Mikhail Kholodkov的帖子(谢谢!)之后,

解决方案是将以下注释添加到using服务执行点:

 @PropertySources({

@PropertySource("classpath:jwtConfig.properties"),

@PropertySource("classpath:app.properties")

})

public class OtherServiceApplication {

public static void main(String[] args) {

SpringApplication.run(OtherServiceApplication.class, args);

}

}

以上是 Spring-Boot多模块无法从另一个模块读取属性文件 的全部内容, 来源链接: utcz.com/qa/430998.html

回到顶部