Spring Boot 如何在Sping Boot 和Gradle应用程序上使用环境变量?

cdmah0mi  于 2023-02-19  发布在  Spring
关注(0)|答案(1)|浏览(207)

我解释我的问题;
我有一个使用Vue.js和Sping Boot 开发的Web应用程序,此应用程序工作PDF表并保存由Java生成的文件,我使用两行代码将我的开发部分与生产部分分开(我给您留下2行代码,这样您就可以很好地理解这个概念)
FileReader leggoFile = new FileReader(System.getProperty("user.dir") + "/temp/webapps/foolder/foolder/file.pdf");
// FileReader leggoFile = new FileReader(System.getProperty("catalina.base") + "/temp/webapps/foolder/foolder/file.pdf");
整个应用程序是使用“bootWar gradle插件”构建的,它会返回一个.war,然后我会将其上传到Tomcat服务器;
我的目标是:我想设置一个环境变量,这样如果我想构建项目,我就不必注解/取消注解该行,例如:
FileReader leggoFile = new FileReader({{variableEnvironment}} + "/temp/webapps/foolder/foolder/file.pdf")
我的问题是:dp Gradle和Sping Boot 如何处理环境?是否有办法分离环境?这是可能的,还是我应该换个Angular 思考?
我尝试搜索一些内容,但不幸的是,我遇到了一个问题,即我不明白.war文件是如何通过BootWar Gradle插件生成的,我还在互联网上搜索,我了解到环境Gradle和环境Spring是两个不同的东西,但通常情况下,即使我知道一开始的代码行是错误的,我的问题总是相同的:
Spring和Gradle中如何处理环境变量?

vmdwslir

vmdwslir1#

使用 Boot ,您可以通过将名为application.yaml的文件添加到资源文件夹来向应用程序添加属性(src/resources/)。此外,您可以通过application-{profile}.yaml添加属性,以便仅为给定的Spring概要文件添加属性。例如,只有当“test”是活动概要文件时,才会读取application-test.yaml。当启动应用程序时,Spring将首先读取application.yaml,然后是任何简档特定的YAML文件,从而替换任何重叠的属性。
有几种方法可以注入属性,一个简单的解决方案是在用@Value("${PATH})注解的组件中添加一个字段,然后用YAML中属性的路径替换PATH。

相关问题