在我的目标文件夹中,有 2 个文件夹,lib 和 conf。所有的属性文件都放在 conf 文件夹中,而 jars 放在 lib folder 中。
在 Spring Boot 之前,我们在 spring.xml 中使用以下配置来使用 @value
<context:property-placeholder location="classpath*:*.properties"/>
在java代码中,如:
@Value("${name}")
private String name;
但是在spring boot中,我不知道如何在java代码中做同样的事情。
我试过关注,但没有用
@Configuration
@PropertySource(value = "classpath:aaa.properties")
public class AppConfig {
@Bean
public PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
return new PropertySourcesPlaceholderConfigurer();
}
}
原文由 Benjamin Liu 发布,翻译遵循 CC BY-SA 4.0 许可协议
我对问题的标题和描述有点困惑。希望我的评论不会让您更加困惑。
一般来说,Spring Boot 对项目结构以及创建的二进制文件非常有意见。推荐的方式(Spring Boot 意见)是构建一个包含所有依赖项的 jar(fat jar)。如果您需要在 fat jar 之外定义的配置属性(或者如果您构建的是 war),Spring Boot 提供了许多选项(请参阅参考资料 1)。我喜欢我的应用程序使用可以使用系统属性设置的标志 (spring.config.location) 指向外部文件:
请注意,您可以通过使用环境变量来定义外部文件所在的位置来执行类似的操作。
我希望这有帮助!
参考资料: 1. https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html