2015-10-20 63 views
13

我有一个分为几个模块的Spring引导应用程序。 主模块运行应用程序,并在资源文件夹中有一个application.properties文件。我想知道是否可以在子模块中添加另一个属性文件来分隔属于该模块的属性以及如何使其工作(因为它不是)。如何在spring-boot中添加多个application.properties文件?

+main_module 
    +src 
    +main 
     +java 
     +my/package/Application.java 
     +resources/application.properties 
+support_module 
    +src 
    +main 
     +java 
     +resources/application.properties 

所以,这是目前的情况。显然,support_module模块中的属性文件没有被读取,导致NoSuchBeanDefinitionException,而如果我把其他属性文件中的内容一切正常。

+0

您是否尝试过使用maven模块引入父pom.xml? – Gangaraju

+0

当然,我有一个家长pom –

回答

14

使用Maven或Gradle时,您正在尝试执行的操作不起作用。原因是当创建工件(最有可能的原因是您使用的是Spring Boot)时,根文件中只有一个application.properties文件。

我建议你更改支持模块上的属性文件的名称,然后配置Spring Boot以查找该文件(看看thisthis answer为指针),或使用某种合并任务为您构建工具(像this也许)

+0

第一个建议看起来很有趣。我如何指示Spring Boot来查找辅助模块中的属性? –

+0

@mat_boy查看我更新的答案请 – geoand

+0

@mat_boy你也应该看到[this](http://stackoverflow.com/a/30213550/2504224)SO线程 – geoand

0

您也可以使用spring.config.location环境属性(目录位置的逗号分隔的列表,或文件路径)

$ java -jar myproject.jar --spring.config.location=classpath:/default.properties,classpath:/override.properties 
是指明确的位置

欲了解更多信息click这里

相关问题