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
<code>server.port=8848 eureka.client.register-with-eureka=false eureka.client.fetch-registry=false eureka.client.serviceUrl.defaultZone=http://localhost:${server.port}/eureka//<code>
主启动类添加@EnableEurekaServer注解
启动eureka
浏览器打开localhost:8848,显示如下网页,则eureka server 搭建成功
3、创建用户服务user-server
步骤如上
maven 构建
选择web 和eureka client
配置application.properties
<code>spring.application.name=USER-SERVER server.port=8080 eureka.client.serviceUrl.defaultZone=http://localhost:8848/eureka//<code>
主启动添加注解 @EnableEurekaClient
先启动eureka server
再启动user server
进入 发现user-server 已经成功注册
新建UserController
<code>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; @RestController public class UserController { @RequestMapping(value = "getUser") public String service(@RequestParam String userId){ String str="hello ,im user server ,userId:"+userId; return str; } }/<code>
浏览器访问 http://localhost:8080/getUser?userId=1 结果如下
4、构建服务消费端 cloud-consumer
maven module 构建
配置application.properties
<code>#是指,这个服务的名称 spring.application.name=CONSUME-SERVICE #该服务独有的端口号 server.port=80 #下面这个是指向Eureka注册中心,这样就注册成功了.. eureka.client.serviceUrl.defaultZone=http://localhost:8848/eureka/ /<code>
主启动添加注解 @EnableEurekaClient @EnableFeignClients
新建 UserServiceClient UserController
<code>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); }/<code>
<code>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; @RestController public class UserController { @Resource private UserServiceClient userServiceClient; @RequestMapping(value = "/consumer/getUser") public String getUser(@RequestParam String userId){ return userServiceClient.getUser(userId); } }/<code>
启动cloud-consumer
访问
至此spring-cloud 通过open fegin 调用user server 服务成功
關鍵字: annotation bind org