在我的目标文件夹中,有2个文件夹,lib和conf。所有的属性文件都放在conf文件夹中,而jars放在lib foulder中。
在Spring Boot之前,我们在spring.xml中使用以下配置来使用@value
<context:property-placeholder location="classpath*:*.properties"/>
并在Java代码中像:
@Value("${name}")
private String name;
但是在春季启动中,我不知道如何在Java代码中执行相同的操作。
我尝试了以下操作,但是没有用
@Configuration
@PropertySource(value = "classpath:aaa.properties")
public class AppConfig {
@Bean
public PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
return new PropertySourcesPlaceholderConfigurer();
}
}
问题的标题和描述让我有些困惑。希望我不会再让您对我的评论感到困惑。
总的来说,Spring Boot对项目结构以及所创建的二进制文件非常反对。推荐的方法(Spring Boot的意见)是构建一个内部具有所有依赖项的jar(胖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
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句