所以我正在开始一个新的spring应用程序,并希望使用spring配置文件以及对应于不同区域的唯一属性文件:
application-dev.properties,application-live.properties等
因此,为了确定我想要使用哪个配置文件,我必须在“启动”中查看一些代码。功能我写的。它基本上检查我的业务区域,如何运行等,并根据该信息设置活动弹簧配置文件。这部分工作正常并且符合预期。
我的问题是,一旦我设置了配置文件,Spring就不会从我的自定义配置文件应用程序 - 配置文件 .properties文件开始。相反,它试图从默认值中获取(如果我有)或者只是为我尝试访问的属性返回null。这不是春天的特色吗?我的个人资料是否必须在运行前设置好?
以下是我设置有效个人资料的方式:
open
答案 0 :(得分:0)
是的,您可以通过两种方式设置有效个人资料
Spring Environment有一个API,但通常你会设置 System属性(spring.profiles.active)或OS环境 变量(SPRING_PROFILES_ACTIVE)。例如。用a启动你的应用程序 -D参数(记得把它放在主类或jar存档之前):
# comments_controller.rb
def create
@post = Post.find(params[:comment][:post_id])
@comment = @post.comments.build(comment_params)
if @comment.save
redirect_to @post
else
render :new
end
end
在Spring Boot中,您还可以设置活动配置文件 application.properties,例如
$ java -jar -Dspring.profiles.active=production demo-0.0.1-SNAPSHOT.jar
以这种方式设置的值将替换为System属性或环境 变量设置,但不是SpringApplicationBuilder.profiles() 方法。因此,后一个Java API可用于扩充配置文件 不改变默认值。