4.4microservice-ticket-consumer-80服务消费者项目建立

我们新建一个服务器提供者module子模块,类似前面建的common公共模块,名称是 microservice-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>microservice-station-consumer-80</artifactId>
<dependencies>
<dependency>
<groupId>com.wfd360.station</groupId>
<artifactId>microservice-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; /**
* Created by 姿势帝-博客园 on 2019/3/26.
* 欢迎添加笔者wx(851298348)共同探讨、学习!
*
* springCloud相关配置
*/
@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; /**
* Created by 姿势帝-博客园 on 2019/3/26.
* 欢迎添加笔者wx(851298348)共同探讨、学习!
*/ /**
* 知识点:@RestController注解相当于@ResponseBody + @Controller合在一起的作用。
*/
@Controller
@RequestMapping("/ticket")
public class TicketConsumerController {
@Autowired
private RestTemplate restTemplate; /**
* 添加或者修改车票信息
*
* @param ticket
* @return
*/
@PostMapping(value = "/save")
@ResponseBody
public boolean save(Ticket ticket) {
System.out.println("======su=====save=========");
return restTemplate.postForObject("http://localhost:1001/ticket/save", ticket, Boolean.class);
} /**
* 查询车票信息
*
* @return
*/
@SuppressWarnings("unchecked")
@GetMapping(value = "/list")
@ResponseBody
public List<Ticket> list() {
return restTemplate.getForObject("http://localhost:1001/ticket/list", List.class);
} /**
* 根据id查询车票信息
*
* @return
*/
@GetMapping(value = "/get/{id}")
@ResponseBody
public Ticket get(@PathVariable("id") Integer id) {
return restTemplate.getForObject("http://localhost:1001/ticket/get/" + id, Ticket.class);
} /**
* 根据id删除车票信息
*
* @return
*/
@GetMapping(value = "/delete/{id}")
@ResponseBody
public boolean delete(@PathVariable("id") Integer id) {
try {
restTemplate.getForObject("http://localhost:1001/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; /**
* Created by 姿势帝-博客园 on 2019/3/26.
* 欢迎添加笔者wx(851298348)共同探讨、学习!
*/
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class})
public class TicketConsumerApplication_80 {
public static void main(String[] args) {
SpringApplication.run(TicketConsumerApplication_80.class, args);
}
}

这里的话 加了特殊配置 排除了 数据源注入,不加的话 可能会因为找不到数据库配置会报错;

我们测试下:(先启动microservice-ticket-provider-1001,在启动microservice-ticket-consumer-80)

http://localhost/ticket/list

到这里一个最基本的微服务架构完成,后面我们围绕着这个基本架构慢慢演变成生产上的架构

源码下载地址:https://github.com/bangbangw/wfd360-station (选择V2版本)

SpringCloud-day02-服务消费者项目建立的更多相关文章

  1. Rest构建分布式 SpringCloud微服务架构项目

    一.开发环境:jdk  1.8.Maven  3.x.IDEA  2019.1.4.SpringBoot   2.0.7.spring Cloud  最新的稳定版  Finchley SR2   搭配 ...

  2. SpringCloud的服务消费者 (二):(rest+feign/ribbon)声明式访问注册的微服务

    采用Ribbon或Feign方式访问注册到EurekaServer中的微服务.1.Ribbon实现了客户端负载均衡,Feign底层调用Ribbon2.注册在EurekaServer中的微服务api,不 ...

  3. springCloud学习-服务消费者(rest+ribbon)

    1.ribbon简介 spring cloud的Netflix中提供了两个组件实现软负载均衡调用:ribbon和feign. Ribbon 是一个基于 HTTP 和 TCP 客户端的负载均衡器 它可以 ...

  4. SpringCloud的服务消费者 (一):(rest+ribbon)访问注册的微服务

    采用Ribbon或Feign方式访问注册到EurekaServer中的微服务.1.Ribbon实现了客户端负载均衡,Feign底层调用Ribbon2.注册在EurekaServer中的微服务api,不 ...

  5. springCloud学习-服务消费者(Feign)

    1.简介 Feign是一个声明式的伪Http客户端,它使得写Http客户端变得更简单.使用Feign,只需要创建一个接口并注解.它具有可插拔的注解特性,可使用Feign 注解和JAX-RS注解.Fei ...

  6. springcloud干活之服务消费者(feign)

    springcloud系列文章的第三篇 本章将继续讲述springcloud的消费者(feign) Spring Cloud Feign是一套基于Netflix Feign实现的声明式服务调用客户端. ...

  7. 玩转SpringCloud(F版本) 二.服务消费者(1)ribbon+restTemplate

    上一篇博客有人问我,Springcloud系列会不会连载 ,大家可以看到我的标签分类里已经开设了SpringCloud专题,所以当然会连载啦,本人最近也是买了本书在学习SpringCloud微服务框架 ...

  8. SpringCloud微服务学习笔记

    SpringCloud微服务学习笔记 项目地址: https://github.com/taoweidong/Micro-service-learning 单体架构(Monolithic架构) Mon ...

  9. springcloud-Netflix创建服务消费者

    目录 springcloud-Netflix创建服务消费者 Ribbon 创建服务消费者-Ribbon方式 ribbon的架构 Feign 创建包和基本项目结构 创建Feign访问服务的接口和访问co ...

随机推荐

  1. leetcode 388.Lonest Absolute File Path

    要求寻找的是最长的长度的,那么考虑文件夹和文件的存在的不同形式的,利用当前所存在的层数和对应的长度之间做一个映射关系的并且用于计算总的长度关系的. class Solution { public: i ...

  2. 关于java类加载的那些事

    首先,类加载的定义: 类加载(Class Loading)是一种机制,他描述的是将字节码以文件形式加载到内存再经过连接.初始化后,最终形成可以被虚拟机直接使用的Java类型地过程. 其次,类加载器的分 ...

  3. confluence中org.apache.tomcat.util.net.NioEndpoint$Acceptor.run Socket accept failed的解决方法

    https://www.cnblogs.com/heyongboke/p/9806396.html 1.confluence中报错信息如下: 严重 [http-nio-18090-Acceptor-0 ...

  4. cordova日期插件的使用:cordova-plugin-datepicker

    1. 添加插件:cordova plugin add cordova-plugin-datepicker; 2.插件的主体样式设置: 3.以上5中样式的截图: THEME_TRADITIONAL的样式 ...

  5. oracle获取连续时间

    SELECT rownum, (to_date('2015-01-01', 'yyyy-mm-dd') + rownum - 1) AS show_time FROM dualCONNECT BY r ...

  6. (转)解决OSX上面PHP curl SSLRead()

    原创 2016年05月19日 19:39:04 标签: php / curl / osx 830 这个问题的原因是因为OSX curl默认使用 SecureTransport 而不是OpenSSL. ...

  7. Ubuntu 12.04图形界面不能登录问题

    问题描述:   Ubuntu 12.04进入到登录界面,输入用户名和密码无法登录, 输出密码后又跳回到登录界面,  执行快捷键Ctrl+Alt+F1, 可以进入tty1命令行, 可以root或者普通用 ...

  8. 【python】self & cls

    转自 python中self,cls 普通的方法,第一个参数需要是self,它表示一个具体的实例本身. 如果用了staticmethod,那么就可以无视这个self,而将这个方法当成一个普通的函数使用 ...

  9. 小程序客服下发消息禁止后 session from 还有用吗?

    文章概要 1. 小程序下发政策调整分析 2. session from 数据还传到底三方了没?  1. 小程序下发政策调整分析 小程序客服功能下发策略调整                       ...

  10. FreeBsd网络性能优化方案sysctl

    以下是阿盛的配置 sysctl net.inet.tcp.msl= sysctl net.inet.tcp.mssdflt= sysctl net.inet.tcp.minmss= sysctl ne ...