创建SpringCloud工程
创建管理工程
用Spring Initializr方式创建一个管理工程
这里填好之后next
因为是管理工程,上面这里不用勾选
创建好的项目结构,其中选中的可以删掉
将pom.xml文件改成上图,springboot用的是2.1.5,springcloud用Greenwich.SR2,打包方式pom
创建Eureka Server
Eureka是springcloud推荐的注册中心,所有的服务都要在Eureka注册
在管理工程springcloud下创建一个子工程server-eureka
选择Eureka Server依赖
创建好的结构如上图
修改server-eureka工程的pom文件,将父工程改为一开始创建的管理工程springcloud,打包方式为jar。由于在父工程中已经定义了springcloud的版本为Greenwich.SR2所以这里不需要定义。
在管理工程springcloud中加入上图代码,定义子modules
将server-eureka的application文件改为yml格式,并如图编写。在启动类加上注解并启动
@EnableEurekaServer
随后就可以在浏览器访问http://http://localhost:8761/进入Eureka的界面。
创建Eureka Client
在管理工程下创建server-producer工程,用来生产服务。
server-producer工程的依赖项选择Web下的Spring Web和Spring Cloud Discovery下的Eureka Discovery Client。
修改server-producer的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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.mxc</groupId>
<artifactId>springcloud</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<groupId>com.mxc</groupId>
<artifactId>server-producer</artifactId>
<version>0.0.1-SNAPSHOT</version>
<!--打包方式-->
<packaging>jar</packaging>
<name>server-producer</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<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>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
在管理工程的pom文件里增加子module
<module>server-producer</module>
修改application.yml文件
server:
port: 8762
spring:
application:
name: producer
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka/
在启动类上加注解
@EnableEurekaClinet
新建controller包并创建ProducerController类
package com.mxc.controller;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;
@RestController
public class ProducerController {
//获取端口号
@Value("${server.port}")
String port;
@GetMapping("/getProducts")
public List getProducts(@RequestParam(value = "name",defaultValue = "mini")String name){
List<String> list = new ArrayList<>();
list.add("香蕉");
list.add("苹果");
list.add("雪梨");
list.add("樱桃");
list.add(name+"你好!"+"以上水果由"+port+"提供.");
return list;
}
}
此时项目结构如下
启动server-eureka和server-producer,在浏览器访问http://localhost:8762/getProducts?name=mm
如图