SpringCloud入门搭建及服务调用

一、版本对应

开发工具:idea 2020.2.3
java:1.8
maven:3.3.9
SpringBoot:2.1.3.RELEASE
SpringCloud:Greenwich.SR5 (版本和SpringBoot必须对应,对应表自行百度)

给个目前的:
image.png

二、搭建springcloud项目框架

idea配置我就不细说了

1. 直接新建成maven项目
image.png

然后next


image.png

finish

2.这个作为父类项目,不需要写代码,删除src文件夹

然后配置pom.xml:
一般在父项目配置

    
        org.springframework.boot
        spring-boot-starter-parent
        2.1.3.RELEASE
         
    

然后配置依赖,这里只是一个springboot项目,所以配一个springboot就行了:


        
            org.springframework.boot
            spring-boot-starter
        
    
image.png
3. 新建两个子项目,也就是两个服务,一个user,一个power,服务名称根据自己需求取名

然后配置pom.xml,它们俩都是独立的springboot项目了,这里也可以和父类工程做依赖继承,但是这里就没必要,更凸显服务的独立性:

    
        
            org.springframework.boot
            spring-boot-starter
        
        
            org.springframework.boot
            spring-boot-starter-web
            2.1.3.RELEASE
            compile
        
    
4. 在两个子项目中建好controller和启动类,以及yml配置类
image.png
5. 分别写好两个接口做调用测试,
5.1. power服务:

controller:


image.png

power启动类:


image.png

power配置文件application.yml:
server:
  port: 6060

spring:
  application:
    name: server-power #服务名称
5.2 user服务

UserController.java
在这里调用另一个服务power服务的接口,可以使用reatTeplate来实现,需要配置

import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;

import java.util.HashMap;
import java.util.Map;

@RestController
public class UserController {

    @Autowired
    private RestTemplate restTemplate;

     //user自己的接口
    @GetMapping("user/getUser.do")
    public Object getUser(){
        Map map = new HashMap<>();
        map.put("user", "value");

        return map;
    }

     //调用power的接口
    @GetMapping("user/getPower.do")
    public Object getPower(){
        return restTemplate.getForObject("http://server-power/power/getPower.do", Object.class);
    }

}

reaTeplate配置文件:AppConfig.java

package com.fzx.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;

@Configuration
public class AppConfig {
    @Bean
    public RestTemplate restTemplate(){
        return new RestTemplate();
    }
}

user服务启动类:

package com;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class AppUser {
    public static void main(String[] args) {
        SpringApplication.run(AppUser.class);
    }
}

user服务的 application.yml

server:
  port: 7070

spring:
  application:
    name: server-user #服务名称

同样可以以相同方式在power服务中调用user的接口
然后在浏览器:
127.0.0.1:6060/power/getPower.do(6060是power服务的端口)
127.0.0.1:7070/user/getUser.do调用自己的接口(7070是user服务的端口)
127.0.0.1:7070/user/getPower.do调用power的接口

至此实现了不同服务之间的调用

你可能感兴趣的:(SpringCloud入门搭建及服务调用)