一、父工程搭建
File→new→Module→maven→next→Add as module to:none和Parent:none→GroupId:com.zwhxpp,AritfactId:zwh-springcloud→next→Module Name: zwh-springcloud,Content root: C:UsersmiracleIdeaProjectsspringcloud_2020zwh-springcloud→finish
我们可以先创建一个父工程,然后后续的工程都以这个工程为父,实现maven的聚合。也可以在一个空的文件夹下面创建父工程,即父工程也可以和其他模块一样是一个独立的模块,此时其他模块仍然继承父工程。
2、添加父工程的依赖
父工程继承spring-boot-starter-parent,所有工程继承父工程,所有微服务都可以依赖基础工程
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.5.RELEASE</version> <relativePath/> </parent>
我们知道Maven的继承和Java的继承一样,只能单继承,无法实现多继承,我们可以使用<type>pom</type><scope>import</scope>来实现多继承。解释一下:type标签的默认值是jar,代表我们依赖导入的是一个jar包,现在我们设置成了pom,说明导入的是一个父模块,后面的scope标签中的值import代表把父模块中的jar包导入进来,不过需要注意的是<type>pom</type><scope>import</scope>
,这种方式只能用在<dependencyManagement></dependencyManagement>
中
<dependencyManagement>
<dependencies>
<!-- springCloud -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
即父工程也继承spring-cloud-dependencies,即可以用spring-cloud的组件。
由于在父工程中已经对spring cloud组件的版本进行了锁定,故子工程的spring cloud组件的版本号可以不用写。
二、搭建子模块
2、添加依赖
web工程至少要添加spring-boot-starter-web依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
spring-boot-starter-web就是将web开发要使用的spring-web、spring-webmvc等坐标进行了“打包”,这样我们的工程只要引入spring-boot-starter-web起步依赖的坐标就可以进行web开发了。
3、创建启动类
@SpringBootApplication @MapperScan("com.zwhxpp.user.mapper") @EnableDiscoveryClient public class UserApplication { public static void main(String[] args) { SpringApplication.run(UserApplication.class, args); } }
4、在配置文件application.yml中添加相关配置
server: port: ${port:9091} spring: application: name: user-service datasource: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://localhost:3306/springcloud username: root password: 123456 mybatis: type-aliases-package: com.zwhxpp.user.pojo