目录
前言
接着上篇,搭建SpringCloud工程项目:SpringCloud及SpringCloudAlibaba微服务组件
工程项目搭建:
1、在IDEA中选择创建新的项目工程
然后选择maven及jdk版本为自己本地的JDK版本,我这里选择的jdk1.8
2、取名合适的模块名
然后点击完成。搭建完成springboot的工程,我们只需要将springcloud的依赖引入即可。
3、pom文件引入以下依赖
此处是先创建一个父类工程,然后将后续练习的子模块工程放入该父类工程中进行统一管理
<!--统一管理jar包版本-->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<junit.version>4.12</junit.version>
<lombok.version>1.18.10</lombok.version>
<log4j.version>1.2.17</log4j.version>
<mysql.version>8.0.18</mysql.version>
<druid.version>1.1.16</druid.version>
<mybatis.spring.boot.version>2.1.1</mybatis.spring.boot.version>
</properties>
<!--子模块继承之后,提供作用:锁定版本+子module不用谢groupId和version-->
<dependencyManagement>
<dependencies>
<!--<dependency>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>3.0.0</version>
</dependency>-->
<!--spring boot 2.2.2-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.2.2.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!--spring cloud Hoxton.SR1-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Hoxton.SR1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!--spring cloud 阿里巴巴-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.1.0.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!--mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
<scope>runtime</scope>
</dependency>
<!-- druid-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>${druid.version}</version>
</dependency>
<!--mybatis-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>${mybatis.spring.boot.version}</version>
</dependency>
<!--junit-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
</dependency>
<!--log4j-->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4j.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
dependencyManagement 最顶层的父POM中看到这个标签
子工程会找到拥有 👆这个标签的的版本号,父类找不到再去找子类的版本
总结:首先会去找到父类的版本并引用,但如果子项目需要引用另外一个版本,只需要声明version即可,父类有版本号,子类没有版本号情况下引用父类版本号,子类有版本号的情况下,使用子类版本号
4、idea配置
修改 Java Compiler 版本、修改Annotation Processors (选择default,选择enable annotation )、file encodings 修改utf-8编码
5、删除该父工程的src目录
最终搭建效果如下:
6、搭建支付微服务和订单微服务
支付模块(服务提供者)
cloud-provider-payment(微服务提供者-支付模块)
↓
cloud-consumer-order(微服务消费者-订单模块)
7、订单微服务
1、创建工程模块
类似上面创建模块,选择新建模块,然后点击maven,选择本地的JDK版本 -> 此处父类选择上面创建的父类模块即可 -> 然后选择合适的命名即可
2、编写pom文件
<dependencies>
<dependency>
<groupId>org.all</groupId>
<artifactId>cloud-api-commons</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<!--如果要将服务注册到 eureka 则需要新添加eureka的依赖 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
3、编写yml文件
server:
port: 80
spring:
application:
name: cloud-order-service
datasource:
type: com.alibaba.druid.pool.DruidDataSource #当前数据源操作类型
driver-class-name: com.mysql.jdbc.Driver #此处不对哈 mysql驱动包
url: jdbc:mysql://localhost:3306/db2022?useUnicode=true&characterEncoding=utf-8
username: root
password: root
eureka:
client:
register-with-eureka: true # 是否要将自己注册进Eureka Server 默认为true
# 是否从Eureka Server 抓取已有的注册信息,默认为true。
# 单点无所谓,集群必须设置为true才能与ribbon使用负载均衡
fetch-registry: true
service-url:
#defaultZone: http://localhost:7001/eureka #单个注册这样即可
defaultZone: http://eureka7001.com:7001/eureka,http://eureka7001.com:7001/eureka #集群注册
mybatis:
mapper-locations: classpath:com.spring.com.cloud.payment.mapper/*.xml
type-aliases-package: com.spring.com.cloud.payment.bean
4、启动类
@SpringBootApplication
public class OrderApplication80 {
public static void main(String[] args) {
SpringApplication.run(OrderApplication80.class,args);
}
}
8、支付微服务
与创建订单微服务类似,注意yml文件中的端口号不要冲突即可
9、测试
编写简单的增删改查业务实现,分别启动订单微服务和支付微服务,用postman调用看是否正常
至此工程项目搭建完成,后续将对springcloud的组件展开使用