我创建了一个 Spring Boot 应用程序,我想知道是否可以加载不同模块的 upmteens application.yml 文件。
我有这样的结构:
myProject
|__ moduleCommons
| |__ application.yml
|__ moduleWeb
| |__ application.yml
| |__ MyProjectWebApplication.java
|__ moduleBatch
|__ application.yml
|__ MyProjectBatchApplication.java
为了启动 Web 模块的 Spring Boot 应用程序,我运行 MyProjectWebApplication.java。
为了启动批处理模块的 Spring Batch,我运行 MyProjectBatchApplication.java。
它们都需要一些公共属性,这些属性在公共模块的 application.yml 文件中设置(如数据库配置、上传文件的目录路径等)。
其他一些属性是特定于每个模块的,因此在 Web 模块(如 servlet 上下文路径、jwt 设置)或批处理模块(如邮件程序设置)的 application.yml 文件中设置。
例如,我想在其中加载 Web 和 commons application.yml 文件的 MyProjectWebApplication 类:
package com.myProject.web;
@SpringBootApplication(
scanBasePackages = {"com.myProject.web", "com.myProject.commons"},
exclude = {DataSourceAutoConfiguration.class, LiquibaseAutoConfiguration.class}
)
@EnableJpaRepositories(
basePackages = "com.myProject.commons.datasources.defaut.repository",
repositoryFactoryBeanClass = EnversRevisionRepositoryFactoryBean.class
)
@ContextConfiguration(classes = {MyProjectDbConfig.class})
public class MyProjectWebApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(MyProjectWebApplication.class);
}
public static void main(String[] args) {
SpringApplication.run(MyProjectWebApplication.class, args);
}
}
但似乎我只加载具有此配置的 Web 模块 application.yml 文件...
帮助 ! :)