SpringCloud-day02-服务消费者项目建立
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)
到这里一个最基本的微服务架构完成,后面我们围绕着这个基本架构慢慢演变成生产上的架构
源码下载地址:https://github.com/bangbangw/wfd360-station (选择V2版本)
SpringCloud-day02-服务消费者项目建立的更多相关文章
- Rest构建分布式 SpringCloud微服务架构项目
一.开发环境:jdk 1.8.Maven 3.x.IDEA 2019.1.4.SpringBoot 2.0.7.spring Cloud 最新的稳定版 Finchley SR2 搭配 ...
- SpringCloud的服务消费者 (二):(rest+feign/ribbon)声明式访问注册的微服务
采用Ribbon或Feign方式访问注册到EurekaServer中的微服务.1.Ribbon实现了客户端负载均衡,Feign底层调用Ribbon2.注册在EurekaServer中的微服务api,不 ...
- springCloud学习-服务消费者(rest+ribbon)
1.ribbon简介 spring cloud的Netflix中提供了两个组件实现软负载均衡调用:ribbon和feign. Ribbon 是一个基于 HTTP 和 TCP 客户端的负载均衡器 它可以 ...
- SpringCloud的服务消费者 (一):(rest+ribbon)访问注册的微服务
采用Ribbon或Feign方式访问注册到EurekaServer中的微服务.1.Ribbon实现了客户端负载均衡,Feign底层调用Ribbon2.注册在EurekaServer中的微服务api,不 ...
- springCloud学习-服务消费者(Feign)
1.简介 Feign是一个声明式的伪Http客户端,它使得写Http客户端变得更简单.使用Feign,只需要创建一个接口并注解.它具有可插拔的注解特性,可使用Feign 注解和JAX-RS注解.Fei ...
- springcloud干活之服务消费者(feign)
springcloud系列文章的第三篇 本章将继续讲述springcloud的消费者(feign) Spring Cloud Feign是一套基于Netflix Feign实现的声明式服务调用客户端. ...
- 玩转SpringCloud(F版本) 二.服务消费者(1)ribbon+restTemplate
上一篇博客有人问我,Springcloud系列会不会连载 ,大家可以看到我的标签分类里已经开设了SpringCloud专题,所以当然会连载啦,本人最近也是买了本书在学习SpringCloud微服务框架 ...
- SpringCloud微服务学习笔记
SpringCloud微服务学习笔记 项目地址: https://github.com/taoweidong/Micro-service-learning 单体架构(Monolithic架构) Mon ...
- springcloud-Netflix创建服务消费者
目录 springcloud-Netflix创建服务消费者 Ribbon 创建服务消费者-Ribbon方式 ribbon的架构 Feign 创建包和基本项目结构 创建Feign访问服务的接口和访问co ...
随机推荐
- webpack初步学习
https://segmentfault.com/a/1190000006178770 该篇文章足够webpack入门的学习了,对webpack有个初步的了解和认识.
- EasyUI datagrid 序列 化后时间 处理 九
@{ ViewBag.Title = "Home Page"; Layout = null; } <!DOCTYPE html> <html> <he ...
- Centos7 安装Nginx 防火墙开放80端口给外网访问
Centos7的防火墙改成了firewall,不再叫iptables,开放端口的方法如下: firewall-cmd --zone=public --add-port=80/tcp --permane ...
- linux ---> taskkill pid 8080 /f
★ :--linux->-端口占用 : netstat -anonetstat -ano|findstr 8003taskkill /pid 4816 /f
- react 点击空白处隐藏弹出层
点击空白处隐藏弹出层的原理是:在 document 上绑定事件来隐藏弹出层,这样点击任何元素的时候都会冒泡到 document 上,都会执行隐藏弹出层的功能.然后我们在不需要隐藏弹出层的元素上阻止冒泡 ...
- php输出数据到csv文件
function export() { $fileName = date('Y-m-d').uniqid().'.csv'; set_time_limit(0); ini_set('memory_li ...
- c# winform窗体如何设置才可以不能随意拖动大小
执行以下两个步骤,能够禁止用户改变窗体的大小 (一)步骤1 设置窗体的FormBorderStyle属性为下列五个值中的任意一个 None:将窗口设置为无边框.无标题栏.用户无法改变窗口的大小,也无法 ...
- mysql 分组排序前n + 长表转宽表
MySQL数据库优化的八种方式(经典必看) 建表 CREATE TABLE if not EXISTS `bb` ( `id` int not null primary key auto_increm ...
- jQuery基础(二)DOM
DOM节点的创建 jQuery节点创建与属性的处理 创建元素节点: $("<div></div>") 创建为文本节点: $("<div> ...
- Excel函数之sumifs应用
这个函数是用来进行多条件求和的一个函数 示例:根据表格求出“鼎盛书店”2012年度所有图书小计的总和,这里就用sumifs计算 首先定位结果输出单元格,祭出函数. sum_range参数就是筛选后需要 ...