弹簧启动多模块配置

时间:2019-03-21 15:57:15

标签: java maven spring-boot yaml multi-module

我目前正在重构使用Maven构建的运行v1.5.1.Release的Spring-Boot应用程序。我正在尝试重构应用程序,以简化DevOps团队的部署过程。

以前,该应用程序配置有库工件或“客户端”,这些源从我们的Artifactory服务器作为maven依赖项/ jar导入到项目中。我们的组拥有依赖关系,目前其他任何应用程序都未使用这些依赖关系。先前的项目结构如下:

[Root package]
Client
|-src/main
|---java.com.company.group.app.client
|----config
|----[...]
|----service
|---resources
|----config
|-----application.yml
|-----application-test.yaml
|-----[...]
|+pom.xml
|-test/main
|---java.com.company.group.app.client
|----[...]
Service
|-src/main
|---java.com.company.group.app.service
|----app
|----[...]
|---Application.java (main spring-boot method)
|+pom.xml
parent-pom.xml

我正在处理的结构将是一个单仓库,其相关项目作为父pom中列出的模块。即

[root-package]
Client
|-src/main
|---java.com.company.group.app.client
|----config
|----[...]
|----service
|---resources
|----config
|-----application.yml
|-----application-test.yaml
|-----[...]
|+pom.xml
|-test/main
|---java.com.company.group.app.client
|----[...]
Service
|-src/main
|---java.com.company.group.app.service
|----app
|----[...]
|---Application.java (main spring-boot method)
|+pom.xml
Module1
|-src/main
|---java.com.company.group.app.module1
|----[...etc]
|+pom.xml
Module2
|-src/main
|---java.com.company.group.app.module2
|----[...etc]
|+pom.xml
Module3
|-src/main
|---java.com.company.group.app.module3
|----[...etc]
|+pom.xml
|parent-pom.xml

到目前为止,这种方法一直有效。我在Main方法中的基本包上使用组件扫描,以将子模块中的组件引入应用程序上下文。

我遇到的问题是,“服务”模块中yaml文件中定义的配置在运行时未获取。 spring-boot main方法位于同一目录中。

我的问题是,我是否需要将Main方法从服务包之外移至项目的根目录或创建包装器应用程序?还是有一个原因,Spring无法将单个Yaml用于多个组件?一个yaml文件中有每个子模块的配置,当将模块作为库依赖项拉入时,此配置有效。

我已经尝试过搜索SO,但是似乎没有任何问题可以解决我的特定问题。

0 个答案:

没有答案