SpringBood整合SpringCloud的一个小Demo

  1. 温馨提示:需要创建三个文件相信大家应该都会,毕竟都学到这来了,但是有几个地方需要注意一下:1.在创建springcloud-eureka时,导入依赖时需要注意选择Eureka Sercer 创建注册服务中心 2.其它两个都选择Eureka Discovery Client ,springcolud-provider 创建生产者 springcolud-consumer 创建消费者。
  1. 项目结构

2.springcloud-eureka项目结构

2.1 springcloud-eureka项目代码:

SpringcloudEurekaApplication.java:

@EnableEurekaServer  //激活Eureka Server相关配置。
@SpringBootApplication
public class SpringcloudEurekaApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringcloudEurekaApplication.class, args);
    }
    
}

2.2 application.yml:

server:
  port: 8761
eureka:
  instance:
    hostname: eureka-server  # eureka实例的主机名
  client:
    register-with-eureka: false #不把自己注册到eureka上
    fetch-registry: false #不从eureka上来获取服务的注册信息
    service-url:
      defaultZone: http://localhost:8761/eureka/

3.springcloud-provider的项目结构

3.1 springcloud-provider 项目代码

TestController.java:

@RestController
public class TestController {

    @Autowired
    private TestService testService;

    @RequestMapping(value = "/test/get",method = RequestMethod.GET)
    public String TestMethod(){
        return testService.TestMethod();
    }

}

TestService.java:

@Service
public class TestService {

    public String TestMethod(){
        return "你好,SpringCloud";
    }

}

SpringcloudProviderApplication.java:

@EnableEurekaClient
@SpringBootApplication
public class SpringcloudProviderApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringcloudProviderApplication.class, args);
    }

}

application.yml:

server:
  port: 8001
spring:
  application:
    name: provider-ticket

eureka:
  instance:
    prefer-ip-address: true # 注册服务的时候使用服务的ip地址
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka/

4.springcloud-consumer项目结构:

4.1 springcloud-consumer项目代码:

TestController.java:
@RestController
public class TestController {

    @Autowired
    RestTemplate restTemplate;

    @RequestMapping(value = "/test/get",method = RequestMethod.GET)
    public String TestMethod(){
        //此参数为注册在Eureka中的服务
        String ticketName = restTemplate.getForObject("http://PROVIDER-TICKET//test/get", String.class);
        return ticketName;
    }

}
SpringcloudConsumerApplication.java:
@EnableEurekaClient //开启发现服务功能
@SpringBootApplication
public class SpringcloudConsumerApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringcloudConsumerApplication.class, args);
    }

    @LoadBalanced   //使用负载均衡机制
    @Bean
    public RestTemplate restTemplate(){
            return new RestTemplate();
    }

}

application.yml:

server:
  port: 8002
spring:
  application:
    name: consumer-ticket


eureka:
  instance:
    prefer-ip-address: true # 注册服务的时候使用服务的ip地址
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka/

最后依次启动项目,在浏览器地址栏输入:,如下图表示成功!

参考博客:

经验分享 程序员 微信小程序 职场和发展