我已经使用spring-boot profiles来更改不同环境的属性值,现在我想使用相同的方法来加载不同的资源文件,例如我有dev_queries和prod_queries.xml以及sql查询。
如果活动配置文件是dev,则如何使spring-boot加载dev_queries.xml,否则为prod_queries.xml。我知道我可以检查活动配置文件,但我的想法是不添加特定的逻辑来处理这种情况。
答案 0 :(得分:3)
将文件名外部化为自定义属性(docs,尤其是24.4)会有帮助吗?因此,在您的属性中,您将使用:
# application-dev.properties
myapp.query-source=dev_queries.xml
# application-production.properties
myapp.query-source=prod_queries.xml
在您的应用程序bean中,可以使用@Value
注释来访问此设置:
@Value("${myapp.query-source}")
private String querySource; // will be dev_queries.xml or prod_queries.xml
在您加载xml文件的代码中,您不必有条件地检查当前活动的配置文件,但可以将该设置外部化为属性。