spring cloud项目构建入门
技术选型
- spring cloud Hoxton.SR3
- spring boot 2.2.6.RELEASE
- eureka
- open fegin
- jdk 8
- maven
版本根据 spring cloud官网确定
1、构建maven父工程
idea 新建maven project
project 命名
修改pom属性删除src文件夹
2、构建eureka注册中心
maven搭建eurekaserver
新建工程,选择Spring Initializr,默认地址,或者修改为http://start.spring.io
配置工程信息
选择Cloud Discovery,勾选EurekaServer,注意spring boot 版本选择为2.2.6
配置appcation.properties
server.port=8848eureka.client.register-with-eureka=falseeureka.client.fetch-registry=falseeureka.client.serviceUrl.defaultZone=http://localhost:${server.port}/eureka/
主启动类添加@EnableEurekaServer注解
启动eureka
浏览器打开localhost:8848,显示如下网页,则eureka server 搭建成功
3、创建用户服务user-server
步骤如上
maven 构建
选择web 和eureka client
配置application.properties
spring.application.name=USER-SERVERserver.port=8080eureka.client.serviceUrl.defaultZone=http://localhost:8848/eureka/
主启动添加注解 @EnableEurekaClient
先启动eureka server
再启动user server
进入 发现user-server 已经成功注册
新建UserController
package com.cloud.controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class UserController { @RequestMapping(value = "getUser") public String service(@RequestParam String userId){ String str="hello ,im user server ,userId:"+userId; return str; }}
浏览器访问 http://localhost:8080/getUser?userId=1 结果如下
4、构建服务消费端 cloud-consumer
maven module 构建
配置application.properties
#是指,这个服务的名称spring.application.name=CONSUME-SERVICE #该服务独有的端口号server.port=80#下面这个是指向Eureka注册中心,这样就注册成功了..eureka.client.serviceUrl.defaultZone=http://localhost:8848/eureka/
主启动添加注解 @EnableEurekaClient @EnableFeignClients
新建 UserServiceClient UserController
package com.cloud.service;import org.springframework.cloud.openfeign.FeignClient;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;@FeignClient(value = "USER-SERVER")public interface UserServiceClient { @RequestMapping(value = "getUser") public String getUser(@RequestParam String userId);}
package com.cloud.controller;import com.cloud.service.UserServiceClient;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.RestController;import javax.annotation.Resource;@RestControllerpublic class UserController { @Resource private UserServiceClient userServiceClient; @RequestMapping(value = "/consumer/getUser") public String getUser(@RequestParam String userId){ return userServiceClient.getUser(userId); }}
启动cloud-consumer
访问
至此spring-cloud 通过open fegin 调用user server 服务成功