Springboot 多模块有依赖关系,每个模块又都有几个环境,如测试环境test,线上环境online。
例如父模块 my-service 是业务服务,子模块 my-dao是数据库操作。数据库配置在my-dao中,my-service需要根据不同的环境调用my-dao中相应的配置文件。
文件结构和重要配置如下:
my-service
src
main
java
resources
application.properties// spring.profiles.active=test,当前选择test环境
application-test.properties// spring.profiles.include=dao-test,依赖my-dao中test环境配置
application-online.properties// spring.profiles.include=dao-online
my-service 模块中的 application-test.properties 中写入配置 spring.profiles.include=dao-test,既可引入模块 my-dao 中的test环境配置。
my-dao
src
main
java
resources
application.properties// my-dao的公共配置
application-dao-online.properties// 写了online环境数据库配置
application-dao-test.properties // 写了test环境数据库配置
若 my-dao 需要单独启动/本地测试
my-dao 的中 application.properties 可以写入 spring.profiles.active=dao-test。
增加 MyDaoApplication.java
@SpringBootApplication
@MapperScan("org.my.dao.mapper")
public class MyDaoApplication {
public static void main(String[] args) {
SpringApplication.run(MyDaoApplication .class, args);
}
}
my-service模块中的Application
@EnableTransactionManagement
@SpringBootApplication(scanBasePackages = "org.my")
@MapperScan("org.my.dao.mapper")
public class MyServiceApplication {
public static void main(String[] args) {
SpringApplication.run(MyServiceApplication .class, args);
}
}