首先创建一个空的项目
填写项目名
空项目就创建好了,然后再创建一个普通的maven项目
maven项目就创好了
注意 创建之后,将src目录删除掉,再把pom文件里的package设置为pom,删除之后为这样的
之后就可以创建子模块了,直接创建一个springboot项目
注意这里的路径,设置一个路径,将demo1放到父模块下面去
就这样,第一个模块就创建完成了,结构如图
再用如上方式创建第二个模块
第二个也创建完成了。
创建完成之后还需要配置一下,将demo2设为jar包,然后在demo1内引入demo2的依赖
demo2的pom.xml配置如图
然后在demo1内引入demo2的依赖
这样,springboot多模块就创建完成了
接下来写代码测试一下
先在demo2创建一个用于测试的service类
@Component
public class Service {
private Date data= new Date();
private String message;
public Date getData() {
return data;
}
public void setData(Date data) {
this.data = data;
}
public Service(String message) {
this.message = message;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
接下来创建一个组件,用于读取配置文件的service.message然后注入到Service里面去
@ConfigurationProperties("service")
public class ServiceProperties {
private String message;
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
再创建一个对外访问的方法,让刚才创建的service组件生效,读取配置文件之后,将获取到的属性注入到组件内的Service中
@Configuration
@EnableConfigurationProperties(ServiceProperties.class)
public class ServiceConfiguration {
@Bean
public Service service(ServiceProperties properties) {
return new Service(properties.getMessage());
}
}
demo2的工作就完成了
接下来demo1只需要调用就可以了
demo1
在启动类里加如下代码
@SpringBootApplication
@Import(ServiceConfiguration.class)
@RestController
public class Demo1Application {
public static void main(String[] args) {
SpringApplication.run(Demo1Application.class, args);
}
@Autowired
private Service service;
@GetMapping("/")
public String home() {
return service.getMessage() +" time:"+ service.getData();
}
}
再然后在application.properties配置Server类的属性
service.message=Hello World
然后启动程序,开始测试
可以看到 hello world 和时间都读取到了,证明demo2写的代码确实生效了