在我的目标文件夹中,有 2 个文件夹,lib 和 conf。所有的属性文件都放在conf文件夹中,jar放在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();
}
}
我对问题的标题和描述有点困惑。希望我的评论不会让您更加困惑。
一般来说,Spring Boot 对于项目结构以及创建的二进制文件非常有意见。推荐的方法(Spring Boot 的意见)是构建一个包含所有依赖项的 jar(fat jar)。如果您需要在 fat jar 外部定义配置属性(如果您构建的是 war),Spring Boot 提供了许多选项(请参阅参考资料 1)。我喜欢我的应用程序使用标志(spring.config.location)指向外部文件,该标志可以使用系统属性进行设置:
java -jar -Dspring.config.location=<path-to-file> myBootProject.jar
请注意,您可以通过使用环境变量来定义外部文件所在的位置来执行类似的操作。
我希望这有帮助!
参考:
1.https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)