2016-09-01 15 views
0

我正在使用spring引导,并且在我的项目中添加了另一个作为Maven依赖项的spring引导应用程序。我面临的问题是,当我运行应用程序时,它会选择依赖项的属性文件而不是我当前的应用程序。例如,如果我使用dev配置文件运行应用程序,application-dev.property文件是从依赖项中选取的,而不是正在运行的应用程序。 我试图调试EnableEncryptablePropertySourcesPostProcessor文件,下面是摘取的属性文件列表的屏幕截图。从依赖而不是应用程序启动拾取属性文件

enter image description here

回答

1

检查this out但你有几个选择:

  1. 只需指定配置文件名:

    Java的罐子myproject.jar --spring.config.name = myproject

基本上,你可以有myproject- dev.properties

  • 或者直接指定配置文件,你想导入:

    Java的罐子myproject.jar --spring.config.location =类路径:/默认。属性,类路径:/override.properties

  • +0

    我在SpringBootApplication类的主要方法中添加了'System.setProperty(”spring.config.name“,”application-newName“);并重命名了属性文件,并且它正常工作:) –

    1

    使用PropertySource注释参考如下图所示

    @PropertySource(value = { "file:/path/to/folder/file.properties" }) 
    
    属性在你的主应用程序文件的文件

    如果您在多个属性相同的属性文件,然后一个在classpath中会得到更多的偏好

    +0

    This页面可能是有用的,因为我不确定最后一条语句是否完全准确。它包含解决属性的顺序。 https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html – wsams

    0

    **在Application.java文件,它应该是这样的

    @PropertySource(“类路径:应用.properties“)

    相关问题