我尝试使用github和jenkins作业自动部署代码,以在AWS上部署我的Springboot应用程序。
我想知道我应该在哪里放置application.properties文件,以防我在Tomcat上部署war文件,并且不希望将此文件推送到github,因为它可能包含一些数据库凭据,而不是暴露。
我应该在Tomcat(AWS)中放置单独的application-prod.properties文件,以便我的war文件独立于这些属性吗?
答案 0 :(得分:2)
请参阅我的回答here。
简而言之,您将属性外部化,然后传递一个或多个将激活一个或多个Spring Configuration类的配置文件。每个Configuration类都将加载一个或多个属性文件。在您的情况下,如果您只有一个环境,则只需为一个配置文件创建配置文件即可。
然后,在您的AWS实例上,您将单独部署配置文件。在运行时,您需要将活动配置文件传递给Spring Boot应用程序。您可以通过传递VM参数来执行此操作:-Dspring.profiles.active = [your-profile]
我正在完成在线课程的最后讲座,该课程展示了如何使用Thymeleaf,Spring Security,Email和Data JPA从头开始创建Spring Boot网站,如何使用Stripe处理信用卡付款以及如何部署到AWS。您可以注册您的兴趣here。
答案 1 :(得分:1)
如何使用spring-cloud-starter-config
代替本地属性?
如果使用spring-cloud-start-config
,则应从config-center
加载所有配置,而不是在本地读取。
即使您有多个不同的环境,spring-cloud-starter-config
也可以使用不同的profiles
处理它。
还有什么,spring-cloud-starter-config
也可以使用本地environment
变量。
顺便说一下,如果您使用bootstrap.yml
,则唯一的本地资源可能是spring-cloud-starter-config
。
希望我能帮到你!