工作中经常遇到多模块系统,有时在多模块中,多个web项目依赖同一个公共服务模块。
back-end-web-application
模块都依赖 common-service
。
此时,我比较倾向于把数据库配置都放在 common-service
模块里。
我们只需要在common-service
中编写配置文件以application-*.yml
的形式命名
然后,back-end-web-application
模块的 application.yml 中配置:
spring: profiles: include: datasource, dev
注:千万不要自己定义common-service
中配置文件的名字,只能以application-
开头才会被springboot
扫描到,如果想自定义名,则需要自己实现扫描。
如果在多个模块中都有 application.yml
文件,则会只读取有主启动类中的yml文件,不会读取其他模块中的配置文件。
例如:在
A
模块中有一个application.yml文件,在B模块中有一个application.yml,如果启动A
模块中的主启动类,则只会加载A
模块中的application.yml文件,并不会加载B模块中的application.yml文件。
https://gitee.com/kendoziyu/spring-boot-yaml-merge