1.搭建环境:JDK1.8+IDEA2017+MySQL8.0

2.项目结构图

3. 编写springcloudproviderdept8002模块(提供者二)

(1)导入依赖(见eureka服务)

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">

springcloud

com.cloud

1.0-SNAPSHOT

4.0.0

springcloudproviderdept8002

org.springframework.cloud

spring-cloud-starter-eureka

1.4.7.RELEASE

org.springframework.boot

spring-boot-starter-actuator

com.cloud

springcloud-api

1.0-SNAPSHOT

junit

junit

mysql

mysql-connector-java

com.alibaba

druid

org.projectlombok

lombok

org.mybatis.spring.boot

mybatis-spring-boot-starter

ch.qos.logback

logback-core

org.springframework.boot

spring-boot-test

org.springframework.boot

spring-boot-starter-web

org.springframework.boot

spring-boot-devtools

(2)模块结构图

 

(3)编写yml文件

server:

port: 8002

mybatis:

mapper-locations: classpath:mybatis/mapper/*.xml

type-aliases-package: com.cloud.pojo

spring:

application:

name: springcloud-provider-dept

datasource:

driver-class-name: com.mysql.jdbc.Driver

url: jdbc:mysql://localhost:3306/db02?allowPublicKeyRetrieval=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8

username: root

password: 123456

eureka:

client:

service-url:

defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/

instance: #修改默认描述信息

instance-id: springcloud-provider-dept-8002

info:

app.name: com.springcloud

company.name: springboot.actuator

 (4)编写启动类

package com.cloud;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.cloud.netflix.eureka.EnableEurekaClient;

@SpringBootApplication

@EnableEurekaClient//表示该实例启动后会自动注册到eureka注册中心

public class Springcloudprovider8002 {

public static void main(String[] args) {

SpringApplication.run ( Springcloudprovider8002.class,args );

}

}

4.编写springcloudproviderdept8003模块(提供者三)

(1) 导入依赖(见eureka服务)

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">

springcloud

com.cloud

1.0-SNAPSHOT

4.0.0

springcloudproviderdept8003

org.springframework.cloud

spring-cloud-starter-eureka

1.4.7.RELEASE

org.springframework.boot

spring-boot-starter-actuator

com.cloud

springcloud-api

1.0-SNAPSHOT

junit

junit

mysql

mysql-connector-java

com.alibaba

druid

org.projectlombok

lombok

org.mybatis.spring.boot

mybatis-spring-boot-starter

ch.qos.logback

logback-core

org.springframework.boot

spring-boot-test

org.springframework.boot

spring-boot-starter-web

org.springframework.boot

spring-boot-devtools

(2)模块结构图

 

(3)编写yml文件

server:

port: 8003

mybatis:

mapper-locations: classpath:mybatis/mapper/*.xml

type-aliases-package: com.cloud.pojo

spring:

application:

name: springcloud-provider-dept

datasource:

driver-class-name: com.mysql.jdbc.Driver

url: jdbc:mysql://localhost:3306/db03?allowPublicKeyRetrieval=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8

username: root

password: 123456

eureka:

client:

service-url:

defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/

instance: #修改默认描述信息

instance-id: springcloud-provider-dept-8003

info:

app.name: com.springcloud

company.name: springboot.actuator

(4)编写启动类

package com.cloud;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.cloud.netflix.eureka.EnableEurekaClient;

@SpringBootApplication

@EnableEurekaClient//表示该实例启动后会自动注册到eureka注册中心

public class Springcloudprovider8003 {

public static void main(String[] args) {

SpringApplication.run ( Springcloudprovider8003.class,args );

}

}

5.修改消费者部分

(1)添加@LoadBalanced注解

package com.cloud.config;

import org.springframework.cloud.client.loadbalancer.LoadBalanced;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

import org.springframework.web.client.RestTemplate;

@Configuration

public class ConfigBean {

@Bean

@LoadBalanced//实现该方法负载均衡

public RestTemplate getRestTemplate()

{

return new RestTemplate ( );

}

}

(2)修改消费者控制器

package com.cloud.controller;

import com.cloud.config.ConfigBean;

import com.cloud.pojo.Dept;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.PathVariable;

import org.springframework.web.bind.annotation.RequestMapping;

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

import org.springframework.web.client.RestTemplate;

import java.util.List;

@RestController

public class DeptConsumerController {

/* 在消费者模型中,并没有service层,

我们只能通过 RestTemplate实现调用,

前提是需要将 RestTemplate注册到bean中,

RestTemplate就是提供给我们远程访问http服务的方法*/

@Autowired

RestTemplate restTemplate;

//使用ribbon负载均衡时,REST_URL应该是一个变量

// private static final String REST_URL="http://localhost:8001";

//SPRINGCLOUD-PROVIDER-DEPT为application名

private static final String REST_URL="http://SPRINGCLOUD-PROVIDER-DEPT";

@RequestMapping("/consumer/dept/add")

public boolean add(Dept dept){

return restTemplate.postForObject ( REST_URL+"/dept/add",dept,Boolean.class );

}

@RequestMapping("/consumer/dept/list")

public List list(){

return restTemplate.getForObject ( REST_URL+"/dept/list" ,List.class );

}

@RequestMapping("/consumer/dept/get/{id}")

public Dept get(@PathVariable("id")Long id){

return restTemplate.getForObject ( REST_URL +"/dept/get/"+id ,Dept.class );

}

}

(3)修改消费者。yml文件

server:

port: 80

eureka:

client:

service-url:

defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/

register-with-eureka: false

(4)添加消费者依赖

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">

springcloud

com.cloud

1.0-SNAPSHOT

4.0.0

springcloud-consumer-dept-80

org.springframework.cloud

spring-cloud-starter-ribbon

1.4.6.RELEASE

org.springframework.cloud

spring-cloud-starter-eureka

1.4.7.RELEASE

com.cloud

springcloud-api

1.0-SNAPSHOT

org.springframework.boot

spring-boot-starter-web

推荐阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: