SpringCloud-day02-服务消费者项目建立
4.4ticket-consumer-80服务消费者项目建立
新建一个服务器提供者module子模块,类似前面建的common公共模块,名称是 ticket-consumer-80
pom.xml修改:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" 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"> <parent> <artifactId>wfd360-station</artifactId> <groupId>com.wfd360.station</groupId> <version>1.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>ticket-consumer-80</artifactId> <dependencies> <dependency> <groupId>com.wfd360.station</groupId> <artifactId>common</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- 修改后立即生效,热部署 --> <dependency> <groupId>org.springframework</groupId> <artifactId>springloaded</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> </dependency> </dependencies> </project>
application.yml配置文件:
server:
port: 80
context-path: /
SpringCloudConfig配置类:
package com.wfd360.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.client.RestTemplate; /** * @author 姿势帝-博客园 * @address https://www.cnblogs.com/newAndHui/ * @WeChat 851298348 * @create 06/29 10:23 * @description */ @Configuration public class SpringCloudConfig { /** * 调用服务模版 * * @return */ @Bean public RestTemplate getRestTemplate() { return new RestTemplate(); } }
主要是定义一个bean RestTemplate对象; springcloud消费者,服务提供者之间的交互是http rest方式,比dubbo rpc方式更加灵活方便点;
TicketConsumerController类:
package com.wfd360.controller; import com.wfd360.model.Ticket; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; import org.springframework.web.client.RestTemplate; import java.util.List; /** * @author 姿势帝-博客园 * @address https://www.cnblogs.com/newAndHui/ * @WeChat 851298348 * @create 06/29 10:25 * @description */ @Controller @RequestMapping("/ticket") public class TicketConsumerController { @Autowired private RestTemplate restTemplate; private final String URL = "http://localhost:6001"; /** * 添加或者修改车票信息 * * @param ticket * @return */ @PostMapping(value = "/save") @ResponseBody public boolean save(Ticket ticket) { return restTemplate.postForObject(URL + "/ticket/save", ticket, Boolean.class); } /** * 查询车票信息 * * @return */ @SuppressWarnings("unchecked") @GetMapping(value = "/list") @ResponseBody public List<Ticket> list() { return restTemplate.getForObject(URL + "/ticket/list", List.class); } /** * 根据id查询车票信息 * * @return */ @GetMapping(value = "/get/{id}") @ResponseBody public Ticket get(@PathVariable("id") Integer id) { return restTemplate.getForObject(URL + "/ticket/get/" + id, Ticket.class); } /** * 根据id删除车票信息 * * @return */ @GetMapping(value = "/delete/{id}") @ResponseBody public boolean delete(@PathVariable("id") Integer id) { try { restTemplate.getForObject(URL + "/ticket/delete/" + id, Boolean.class); return true; } catch (Exception e) { return false; } } }
启动类TicketConsumerApplication_80:
package com.wfd360; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration; /** * @author 姿势帝-博客园 * @address https://www.cnblogs.com/newAndHui/ * @WeChat 851298348 * @create 06/29 10:28 * @description */ @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class}) public class TicketConsumerApplication_80 { public static void main(String[] args) { SpringApplication.run(TicketConsumerApplication_80.class, args); } }
我们测试下:(先启动ticket-provider-6001,在启动ticket-consumer-80)
到这里一个最基本的微服务架构完成,后面围绕着这个基本架构慢慢演变成生产上的架构.
springCloud课程与代码下载:https://www.cnblogs.com/newAndHui/p/13210228.html