IDEA搭建Spring Cloud

一、说明

1.IDE这里使用的是IntelliJ IDEA
2.项目为Demo级别,方便新手入门理解

3.线上代码:https://github.com/xwh255/springCloud.git

二、项目创建

1.创建注册中心

 

将application.properties改为application.yml(这里不改也行,只是改为YAML格式更便捷)

增加pom依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

application.yml配置如下:

server:
  port: 8080
spring:
  application:
    name: register

eureka:
  client:
    register-with-eureka: false
    fetch-registry: false
    service-url:
      defaultZone: http://localhost:8080/eureka/
DemoApplication添加注解@EnableEurekaServer
@EnableEurekaServer
@SpringBootApplication
public class DemoApplication {

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

}

启动项目,查看效果:http://localhost:8080

2.创建生产者(服务提供者)

重复项目创建1步骤,创建用户管理,以下为不同操作

增加pom依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

application.yml配置如下:

server:
  port: 8082
spring:
  application:
    name: user-service

eureka:
  client:
    service-url:
      defaultZone: http://localhost:8080/eureka/

增加controller和service包

增加UserController.java

@RestController
@RequestMapping("user")
public class UserController {

    @Autowired
    UserService userService;

    @GetMapping("list")
    public String list(){
        return userService.list();
    }
}

增加UserService.java

@Service
public class UserService {

    public String list(){
        return "[{uid:1,name:'zhangsan'},{uid:2,name:'lisi'}]";
    }
}
DemoApplication不做修改
@SpringBootApplication
public class DemoApplication {

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

}

启动项目,查看效果:http://localhost:8082/user/list

这个时候我们已经向注册中心注册了一个用户管理,切换到1打开的页面看看效果

重复项目创建2步骤,创建订单管理

增加pom依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

application.yml配置如下:

server:
  port: 8081
spring:
  application:
    name: order-service

eureka:
  client:
    service-url:
      defaultZone: http://localhost:8080/eureka/

增加controller和service包

增加OrderController.java

@RestController
@RequestMapping("order")
public class OrderController {

    @Autowired
    OrderService orderService;

    @GetMapping("list")
    public String list(){
        return orderService.list();
    }

}

增加OrderService.java

@Service
public class OrderService {

    public String list(){
        return "[{no:1,time:2018},{no:2,time:2019}]";
    }

}
DemoApplication不做修改
@SpringBootApplication
public class DemoApplication {

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

}

启动项目,查看效果:http://localhost:8081/order/list

这个时候我们已经向注册中心注册了一个用户管理,切换到1打开的页面看看效果

重复项目创建2步骤,提供对外接口

 

增加pom依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

application.yml配置如下:

server:
  port: 8083
spring:
  application:
    name: user-web

eureka:
  client:
    service-url:
      defaultZone: http://localhost:8080/eureka/

增加consumer和controller包

增加OrderConsumer.java

@FeignClient("order-service")
public interface OrderConsumer {

    @GetMapping("/order/list")
    String list();

}

增加UserConsumer.java

@FeignClient("user-service")
public interface UserConsumer {

    @GetMapping("/user/list")
    String list();

}

增加OrderController.java

@RestController
@RequestMapping("order")
public class OrderController {

    @Autowired
    RestTemplate restTemplate;

    @GetMapping("orderList")
    public String orderList(){
        return "consumer获取信息:"+restTemplate.getForObject("http://order-service/order/list",String.class);
    }

}

增加TestController.java

@RestController
@RequestMapping("test")
public class TestController {

    @Autowired
    private UserConsumer userConsumer;

    @Autowired
    private OrderConsumer orderConsumer;

    @GetMapping("show")
    public String show(){
        String user = userConsumer.list();
        String order = orderConsumer.list();
        return String.format("consumer获取信息:用户信息:%s,订单信息:%s",user,order);
    }
}

增加UserController.java

@RestController
@RequestMapping("user")
public class UserController {

    @Autowired
    RestTemplate restTemplate;

    @GetMapping("userlist")
    public String userlist(){
        return "consumer获取信息:"+restTemplate.getForObject("http://user-service/user/list",String.class);
    }
}

DemoApplication修改如下:

@EnableFeignClients
@EnableEurekaClient
@SpringBootApplication
public class DemoApplication {

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

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

}

需要说明:这里使用两个调用方式,即一种是使用RestTemplate,一种是使用插件openfeign

启动项目,查看效果:

http://localhost:8083/user/userlist

http://localhost:8083/order/orderList

http://localhost:8083/test/show

这个时候我们已经向注册中心注册了一个用户管理,切换到1打开的页面看看效果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值