1.创建空项目
第一步(Empty Project,空项目可以看成是一个工作区),要求项目所在路径不能有中文目录(项目创建完以后,需要对项目进行初始配置,例如maven构建环境,编译环境,工作区编码等)
第二步:填写项目信息
第三步:配置项目的JDK环境,如图所示:
第四步:配置项目所需要的maven环境,如图所示
repository别和其他项目重复,自己找个地方
第五步:配置项目自动编译,如图所示:
第六步:配置项目编码,如图所示
2,创建Maven父工程(module) -控制springcloud和springboot的版本
创建maven module工程01-sca,此工程为我们后续项目模块的父工程,这个工程的作用就是来管理子模块中所需要的共性依赖,如图所示:
放在项目目录下
通过此工程管理其核心依赖,其pom文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<modules>
<module>sca-nacos-provider</module>
<module>sca-nacos-consumer</module>
<module>sca-nacos-config</module>
<module>sca-springcloud-gateway</module>
</modules>
<!--指定父工程(这个工程中提供了一些基础依赖,以及某些依赖的版本管理)-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.2.RELEASE</version>
</parent>
<groupId>com.cy</groupId>
<artifactId>01-sca</artifactId>
<version>1.0-SNAPSHOT</version>
<!--所有父工程打包方式为pom方式,一个父工程中可以有很多个子模块,项目打包时
要将这些子模块module,进行独立打包,此时packaging元素内部的只必须为pom,默认
为jar-->
<packaging>pom</packaging>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<spring.cloud.version>Hoxton.SR8</spring.cloud.version>
<spring.cloud.alibaba.version>2.2.5.RELEASE</spring.cloud.alibaba.version>
</properties>
<!--依赖管理(只提供依赖版本管理),这个元素一般只写在maven父工程中-->
<dependencyManagement>
<dependencies>
<!--spring cloud (这个技术是依赖与spring boot的)-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring.cloud.version}</version>
<type>pom</type><!--当scope为import时这里的类型只能为pom类型-->
<scope>import</scope><!--表示此工程中的子工程可以直接import这个依赖中的资源-->
</dependency>
<!--Spring cloud alibaba-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring.cloud.alibaba.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<!--当在父工程添加了这样的依赖,子工程中无需再添加-->
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
</dependencies>
</project>
1. <packaging>pom</packaging> 所有父工程打包方式为pom
2. <properties> 使用资源版本配置管理,可以自定义
3.<dependencyManagement>元素只写在maven父工程中,
4.<dependencyManagement><dependencies> 依赖版本管理
5.<type>pom</type> 当scope为import时这里的类型只能为pom类型
<scope>import</scope> 表示此工程中的子工程可以直接import这个依赖中的资源(Java只能单继承)
3.生产者服务创建及注册
第一步:创建服务提供者继承parent工程(01-msa),module名为sca-nacos-provider(创建module工程时在父工程上右键创建module)。
第二步:添加项目依赖,关键代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>01-sca</artifactId>
<groupId>com.cy</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>sca-nacos-provider</artifactId>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<dependencies>
<!--spring boot web 依赖 (默认会下载一个tomcat,并初始化spring web mvc配置)-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--spring cloud alibba的nacos服务注册和发现功能-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
</dependencies>
</project>
第三步:创建并修改配置文件application.yml(或者application.properties),实现服务注册,关键代码如下:
server:
port: 8081
spring:
application:
name: nacos-provider
cloud:
nacos:
server-addr: localhost:8848
第四步:创建启动类,并定义处理请求的控制层对象和方法,关键代码如下:
package com.cy;
@SpringBootApplication
public class NacosProviderApplication {
public static void main(String[] args) {
SpringApplication.run(NacosProviderApplication.class, args);
}
@Value("${server.port}")
private String server;
@RestController
public class ProviderController {
@GetMapping(value = "/provider/echo/{string}")
public String doEcho(@PathVariable String string) {
return server+"say:Hello Nacos Discovery " + string;
}
}
}
第五步:启动启动类,然后刷先nacos服务,检测是否服务注册成功,如图所示:
第六步:打开浏览器,输入http://localhost:8081/provider/echo/msa,然后进行访问,结果如下:
8081say:Hello Nacos Discovery msa