SpringCloud与idea在项目中相遇:第二天,完善项目

为了实现项目的实际运用,这一天我将整个项目完善。如果没有兴趣,可以直接下载源码,跳到第三天。有些细节可能估计不到,所以直接给出源码。

下载链接:MySpringCloud2-Eureka

  1. 创建项目vlluviaCloud-api

此项目可以理解为 公共项目

SpringCloud与idea在项目中相遇:第二天,完善项目_第1张图片
a) 创建entitie 包
b) 创建Person类

@NoArgsConstructor
@Data
@Accessors(chain = true)
public class Person implements Serializable {

    private int id;
    private String name;
    private String address;

}

SpringCloud与idea在项目中相遇:第二天,完善项目_第2张图片

  1. 创建vlluviaCloud-provider-dept-8001 项目

服务的提供者,可以理解为传统意义上项目restful接口的实现类。但是我们省略数据库连接的过程和所有的实现过程。

SpringCloud与idea在项目中相遇:第二天,完善项目_第3张图片

a) 创建controllers 包

b) 创建PersonController 类

@RestController
public class PersonController {

    private List get() {
        List lists = new ArrayList<>();
        lists.add(new Person(12, "liming", "北京"));
        lists.add(new Person(16, "haoran", "浙江"));
        lists.add(new Person(30, "taini", "四川"));
        return lists;
    }

    @RequestMapping(value = "/person/get/{id}", method = RequestMethod.GET)
    public Person getPerson(@PathVariable("id") int id) {
        for (Person person : get()) {
            if (person.getId() == id)
                return person;
        }
        return null;
    }

    @RequestMapping(value = "/person/gets", method = RequestMethod.GET)
    public List gets() {
        return get();
    }
}

c) 修改application.properties 为application.yml

server:
  port: 8001

spring:
  application:
    name: vlluviacloud-dept

eureka:
  client: #客户端注册进eureka服务列表内
    service-url:
      #defaultZone: http://localhost:7001/eureka
      defaultZone: http://eureka1:7001/eureka/,http://eureka2:7002/eureka/,http://eureka3:7003/eureka/
  instance:
    instance-id: vlluiaecloud-dept8001
    prefer-ip-address: true     #访问路径可以显示IP地址

d) 修改ProviderApplication
SpringCloud与idea在项目中相遇:第二天,完善项目_第4张图片

e) 最后项目结构
SpringCloud与idea在项目中相遇:第二天,完善项目_第5张图片

f) 访问http://localhost:8001/person/gets
SpringCloud与idea在项目中相遇:第二天,完善项目_第6张图片

  1. 修改vlluviaCloud-consumer-dept-80

RestTemplate 映射到本地 8001 端口

a) 创建config包

b) 创建ConfigBean 类

@Configuration
public class ConfigBean {

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

}

c) 创建controllers 包

d) 创建PersonController 类

@RestController
public class PersonController {

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

    @Autowired
    private RestTemplate restTemplate;

    @RequestMapping(value = "/consumer/person/get/{id}")
    public Person getPerson(@PathVariable("id") int id)
    {
        return restTemplate.getForObject(REST_URL_PREFIX + "/person/get/"+id, Person.class);
    }
    @RequestMapping(value = "/consumer/person/gets")
    public List list()
    {
        return restTemplate.getForObject(REST_URL_PREFIX + "/person/gets", List.class);
    }

}

e) 访问http://localhost:8001/person/gets
SpringCloud与idea在项目中相遇:第二天,完善项目_第7张图片

  1. 请根据第2条,创建 vlluviaCloud-provider-dept-8002和 vlluviaCloud-provider-dept-8003

你可能感兴趣的:(springCloud)