
springcloud详解
Spring Cloud是一系列框架的有序集合,本专栏将从spingcloud基础组件进行讲解,最后结合大型电商项目进行实战演练
makyan
1、计算机软件、微服务开发、移动客户端开发。
2、系统架构设计,需求调研、分析、设计,业务架构、技术架构、数据架构设计。
3、具备行业解决方案设计与编写。
4、项目管理。
5、当前互联网研究,针对传统产业转型升级的产业互联网研究,并正在编写《产业互联网》书籍。
展开
-
springcloud、springboot、springcloudalibaba版本对应关系
springcloud、springboot、springcloudalibaba、mybatis版本对应关系:告诉您一个小秘密:https://start.spring.io/actuator/info{ git: { commit: { time: "2020-04-20T08:47:45Z", id: "e74294b" }, branch: "e74294...原创 2020-04-22 22:44:47 · 3722 阅读 · 0 评论 -
Spring MVC的多视图解析器配置及与Freemarker的集成
一、从freemarker谈起Freemarker使用模板技术进行视图的渲染。自从看了Struts标签、Freemarker、JSTL的性能对比后,我毅然决定放弃Struts标签了!效率太差……spring本身支持了对Freemarker的集成。只需要配置一个针对Freemarker的视图解析器即可。 二、Spring MVC视图解析器视图解析器的工作流程大转载 2016-06-05 12:32:22 · 741 阅读 · 0 评论 -
Spring 3 mvc中返回pdf,json,xml等不同的view
spring mvc就是好,特别是rest风格的话,一个 org.springframework.web.servlet.view.ContentNegotiatingViewResolver就可以根据不同的场景返回不同的view了,比如返回json,xml,pdf等.马上看代码实现 先是一个简单的pojo Java代码 package com.h转载 2016-06-05 12:31:37 · 715 阅读 · 0 评论 -
解析mediaTypes+viewResolvers+viewResolvers
spring在解析视图的时候有两个重要的接口:ViewResolver 和 ViewViewResolver 中只有一个方法 resolveViewName ,提供 view name 和 实际 view的映射;View 中两个方法 getContentType 和 render ,解析请求中的参数并把这个请求处理成某一种 View.说白了,就是ViewResolver 负责怎么去转载 2016-06-05 12:30:55 · 604 阅读 · 0 评论 -
ContentNegotiatingViewResolver解析器
RESTful服务中很重要的一个特性即是同一资源,多种表述我们使用ContentNegotiatingViewResolver就可以做到,这个视图解析器允许你用同样的内容数据来呈现不同的view 如下面描述的三种方式: 方式1 使用扩展名http://www.test.com/user.xml 呈现xml文件http://www.test.c转载 2016-06-05 12:29:24 · 650 阅读 · 0 评论 -
Spring mvc 访问静态资源的三种方法
Spring mvc 在找页面时,走的是dispatcherServlet路线。找不到的时候会报404 ,控制台会打印出dispatcherServlet不能匹配日志方案一:激活Tomcat的defaultServlet来处理静态文件 default *.jpg default原创 2016-06-08 17:15:20 · 941 阅读 · 0 评论 -
Spring ContentNegotiatingViewResolve 源码详解
诞生自 3.0 的 ContentNegotiatingViewResolver 从字义不太容易知道在做什么或怎么用,那就从 Source code 好好来研究一下。每个 ViewResolver 的重点就是 resolveViewName()。public View resolveViewName(String viewName, Locale locale) throws Exce转载 2016-06-05 12:38:16 · 1020 阅读 · 0 评论 -
Restful Spring MVC
spring MVC本身对Restful支持非常好。它的@RequestMapping、@RequestParam、@PathVariable、@ResponseBody注解很好的支持了REST。18.2 Creating RESTful services1. @RequestMappingSpring uses the @RequestMapping method annot转载 2016-06-05 12:36:55 · 846 阅读 · 0 评论 -
ContentNegotiatingViewResolver spring REST中的内容协商(同一资源,多种展现:xml,json,html)
本文参照badqiu的文章 http://badqiu.iteye.com/blog/552806REST的详细可以查看我的一片REST的文章RESTful服务中很重要的一个特性即是同一资源,多种表述.如 get put post delete head方式提交的请求,或者根据accept,参数,后缀等方式。getputpostdeletehead方转载 2016-06-05 12:35:44 · 538 阅读 · 0 评论 -
@RequestParam @RequestBody @PathVariable 等参数绑定
引言:接上一篇文章,对@RequestMapping进行地址映射讲解之后,该篇主要讲解request 数据到handler method 参数数据的绑定所用到的注解和什么情形下使用;简介:handler method 参数绑定常用的注解,我们根据他们处理的Request的不同内容部分分为四类:(主要讲解常用类型)A、处理requet uri 部分(这里指转载 2016-06-05 12:34:22 · 856 阅读 · 0 评论 -
详解Spring MVC 4之ViewResolver视图解析器
所有的We MVC框架都有一套它自己的解析视图的机制,Spring MVC也不例外,它使用ViewResolver进行视图解析,让用户在浏览器中渲染模型。ViewResolver是一种开箱即用的技术,能够解析JSP、Velocity模板和XSLT等多种视图。 Spring处理视图最重要的两个接口是ViewResolver和View。ViewResolver接口在视图名称和真正的视图之间提转载 2016-06-05 12:19:35 · 1042 阅读 · 0 评论 -
spring mvc返回类型
新建后台代码用以测试返回类型,在这里我新建的如下:[java] view plaincopy/** * 项目名称:Spring3mvc demo * Copyright ? 2010-2012 spartacus.org.cn All Rights Reserved */ package cn.org.spartacus.s转载 2016-06-04 22:57:12 · 649 阅读 · 0 评论 -
SpringMVC——接收请求参数和页面传参
spring接收请求参数: 1,使用HttpServletRequest获取Java代码 @RequestMapping("/login.do") public String login(HttpServletRequest request){ String name = request.getParameter("name")转载 2016-06-04 22:55:56 · 457 阅读 · 0 评论 -
SpringMVC数据绑定全面示例(复杂对象,数组等)
已经使用SpringMVC开发了几个项目,平时也有不少朋友问我数据怎么传输,怎么绑定之类的话题,今天做一个总结。在此之前,大家可以看一下我之前的一篇关于spring restful的文章http://www.xdemo.org/spring-restful/。项目下载:http://pan.baidu.com/share/link?shareid=955245807&uk=18966308转载 2016-06-04 22:48:22 · 757 阅读 · 0 评论 -
Spring mvc 原理浅析
Spring MVC主要包括以下要点:1:由DispatcherServlet控制的整个流程;2:注解驱动的控制器,其中包括请求映射、数据的绑定和格式化;3:文件上传;4:一些杂项,如静态资源处理、异常处理等等。这些东西构成了精致的Spring MVC框架,下面我将针对这些要点做详细讨论,以期其能在开发上对各位观众有些作用。1. Spring M转载 2016-06-04 21:51:53 · 511 阅读 · 0 评论 -
九、Spring Cloud Config Server详解(八):@RefreshScope详解-手动刷新Config配置
9.9.手动刷新Config配置当云端(我们使用gitee)我们的配置文件内容发生变化时,我们项目的客户端却没有发生变化,这怎么办呢?1、创建一个项目:从futurecloud-config-client-eureka复制一份,得到futurecloud-config-client-eureka-refresh项目引入依赖: <!--引入安全认证依赖--><depe...原创 2019-03-25 13:54:09 · 4279 阅读 · 0 评论 -
九、Spring Cloud Config Server详解(七):Config整合Eureka
9.8.Config整合EurekaConfig 整合Eureka,是需要将Config Server和Config Client都整合到Eureka,然后Config Client通过服务发现,找到Config Server,从而连接Config Server,获取配置信息。1、创建两个项目:futurecloud-config-client-eurekafuturecloud-co...原创 2019-03-24 19:44:59 · 1739 阅读 · 0 评论 -
九、Spring Cloud Config Server详解(六):Config Server认证
9.7.Config Server认证即访问Config Server时需使用用户名/密码登录,同理eureka的认证1、新建一个项目,添加依赖futurecloud-config-server-auth <dependency> <groupId>org.springframework.boot</groupId> &l...原创 2019-03-24 17:08:50 · 606 阅读 · 0 评论 -
九、Spring Cloud Config Server详解(五):Spring Cloud Config与JCE实现配置文件的加解密
9.6.Config加解密我们的配置文件放到云端或其他服务器,配置文件中会有很多敏感信息,如数据库密码等,这些信息如果以明文存储和传输是很危险的,为了解决这个问题,Config提供了对属性加密解密的功能,只需要在敏感信息的值加密后加上前缀{cipher},这主要是为了防止密文被用做密码并意外泄露。Ps:防的就是开发人员。9.6.1.对称加解密:JCE方式1、在JVM中安装全功能J...原创 2019-03-24 17:01:15 · 591 阅读 · 0 评论 -
九、Spring Cloud Config Server详解(四):多仓库与搜索路径、密码认证的配置
9.5.Config 多仓库配置我们在Config Server的项目futurecloud-config-server来进行测试。server: port: 7000 #程序启动端口,也就是tomcat的端口spring: application: name: futurecloud-config-server #应用名称,别名 cloud: config:...原创 2019-03-24 16:49:28 · 1474 阅读 · 0 评论 -
九、Spring Cloud Config Server详解(三):通配符模式匹配
9.4.Config通配符模式我们在Config Server的项目futurecloud-config-server来进行测试。1、在码云上新建一个项目mtbdmp,项目中的配置文件 mtbdmp.yml2、修改application.yml配置文件server: port: 7000 #程序启动端口,也就是tomcat的端口spring: application: ...原创 2019-03-24 16:44:52 · 838 阅读 · 0 评论 -
九、Spring Cloud Config Server详解(二):Config Client客户端配置映射
1、创建一个项目,futurecloud-config-client,引入依赖spring-cloud-starter-config<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</art...原创 2019-03-24 16:41:37 · 819 阅读 · 0 评论 -
九、Spring Cloud Config Server详解(一):Config Server基本使用与配置规则详解
九、Config Server在上面的项目中,每个项目的配置文件都在自己的项目中配置,这样,在生产环境中,会带来很多麻烦,每改动一个配置可能要修改很多个项目, 被修改的项目可能都要重新打包,重新部署。那能不能有一种方法,统一部署Spring Cloud 中的各个微服务的配置呢?这就是Spring Cloud Config。 Spring Cloud Config 是一种用来动态获取Git、SVN...原创 2019-03-22 23:30:43 · 1829 阅读 · 0 评论 -
八、Spring Colud Zuul详解
8.1. Zuul基本介绍Zuul本身不具备服务发现的功能,如果要让服务发现Zuul,必须让Zuul依赖于eureka client,所以,使用Zuul,最基本的需要依赖两个包:spring-cloud-starter-netflix-zuulspring-cloud-starter-netflix-eureka-client1、创建一个项目 futurecloud-apigetwa...原创 2019-03-21 22:32:00 · 1112 阅读 · 0 评论 -
七、Spring Colud Turbine详解(二):Turbine监控多个集群
7.3. Turbine集群监控:配置多个集群组1、集群分组将futurecloud-hystrix-cluster1项目复制3份,分别为:futurecloud-hystrix-cluster4、futurecloud-hystrix-cluster5、futurecloud-hystrix-cluster6将futurecloud-hystrix-cluster1、futurecl...原创 2019-03-21 14:48:52 · 664 阅读 · 0 评论 -
七、Spring Colud Turbine详解(一):Turbine集群监控
7.2.1.概述1、简介Turbine是聚合服务器发送事件流数据的一个工具,Hystrix的监控中,只能监控单个节点,实际生产中都为集群,因此可以通过Turbine来监控集群下Hystrix的metrics情况Turbine的github地址:https://github.com/Netflix/Turbine2、使用场景在复杂的分布式系统中,相同服务的结点经常需要部署上百甚至上千个...原创 2019-03-20 16:39:03 · 1427 阅读 · 0 评论 -
六、Hystrix详解三:Hystrix的健康监测
5.3. Hystrix的健康监测1、添加依赖<!--添加认证监控--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId><...原创 2019-03-19 16:10:22 · 1790 阅读 · 0 评论 -
六、Hystrix详解二、Feign 使用Hystrix
在Feign 接口中定义了依赖服务的接口,当Feign调用依赖服务的接口失败时怎么办?我们也可以在Feign中利用Hystrix的功能,当Feign 调用依赖服务的接口失败时,通过Hystrix调用指定的方法,Spring Cloud默认为Feign整合了Hystrix,但在Spring Cloud 基于Spring boot 2.x的版本中,默认是Feign是关闭Hystrix的。那么Fei...原创 2019-03-19 14:55:55 · 1718 阅读 · 1 评论 -
六、Hystrix详解一、Hystrix的基本使用
Hystrix是Netflix开源的一款容错框架,包含常用的容错方法:线程池隔离、信号量隔离、熔断、降级回退。在高并发访问下,系统所依赖的服务的稳定性对系统的影响非常大,依赖有很多不可控的因素,比如网络连接变慢,资源突然繁忙,暂时不可用,服务脱机等。我们要构建稳定、可靠的分布式系统,就必须要有这样一套容错方法。6.1. Hystrix的基本使用1、创建一个Eureka Client项目f...原创 2019-03-19 14:45:37 · 9402 阅读 · 2 评论 -
坑二:Spring Cloud Ribbon使用服务名调用服务提供者异常 java.net.UnknownHostException
在做eureka 服务集群是,使用Ribbon做客户端负载均衡,服务提供者使用服务名,客户端报错,java.net.UnknownHostException查看日志:就是不识别FUTURECLOUD-USER,查看Spring Cloud 官网,Ribbon的用法,发现使用Ribbon的时候,必须要在RestTemplate bean配置中添加负载均衡注解@LoadBala...原创 2019-03-16 17:15:05 · 3838 阅读 · 0 评论 -
坑一:Spring Cloud 2.0以上,eureka 开启登录验证后,eureka 客户端无法注册到eureka
之前用的Spring Cloud 是2.0以上的,开启eureka登录验证后,eureka客户端都能正常注册到eureka服务上今天,升级Spring Cloud后,eureka客户端无法登录上。查看日志:原因分析查资料了解到新版(Spring Cloud 2.0 以上)的security默认启用了csrf检验,要在eurekaServer端配置security的csrf检验为...原创 2019-03-16 11:18:03 · 2549 阅读 · 2 评论 -
五、Feign详解
4.1. Feign是什么?Feign是在RestTemplate基础上封装的,使用注解和接口来定义服务提供者以及服务提供者的接口,url风格是Rest。简单点说,Feign 仅仅使用注解@FeignClient和接口(interface),就能定义依赖服务的接口,代替了RestTemplate的功能。在上面讲解的Spring Cloud Ribbon中,服务消费者访问服务提供者,都是通过...原创 2019-03-18 16:21:33 · 2278 阅读 · 0 评论 -
三、Eureka 详解
问题:配置在yml文件中的服务提供者的URL地址,如果服务提供者崩溃后,服务消费者future-order怎么能及时发现呢?#这就是SpringCloud主要解决的问题,eureka提供服务注册功能,所有的服务都可以注册到eureka中,#然后我们监控eureka的所有服务,一旦某个服务崩溃,可立即采取措施解决2.1. 首先,将整个项目变成SpringCloud项目,在父项目futurecl...原创 2019-03-18 10:21:34 · 555 阅读 · 0 评论 -
四、Ribbon详解
以上的服务提供者,我们都是拿到服务提供者的url后访问,正常情况下,生产环境的服务提供者不止一个,如果有多个,服务消费者怎么去访问服务提供者呢?这就是Ribbon,他为客户端提供负载均衡3.1. 新创建一个项目futurecloud-ribbon由于Eureka内部已经内嵌有Ribbon,所以,不需要添加依赖,如果要添加,就加入以下依赖<!--添加ribbon依赖--> ...原创 2019-03-18 10:32:36 · 4248 阅读 · 0 评论 -
二、Spring Cloud详解一、从Spring boot项目开始
一、创建springboot项目##1、先创建一个父类项目:futurecloud-master###1.1. 将当前项目声明为springboot项目org.springframework.bootspring-boot-starter-parent2.0.3.RELEASE###1.2. 添加springboot项目依赖 <dependencies> &...原创 2019-03-18 10:18:45 · 383 阅读 · 0 评论 -
一、Spring Cloud 概述
本来想自己操刀写Spring Cloud 的整体概述,以及Spring Cloud全家桶技术原理,但网上找到一篇写得非常好的关于Spring Cloud的概述,我直接转载过来了,比起国内其他出版关于Spring Cloud的书籍好的太多。1.1. 概述毫无疑问,Spring Cloud是目前微服务架构领域的翘楚,无数的书籍博客都在讲解这个技术。不过大多数讲解还停留在对Spring C...转载 2019-03-18 10:07:11 · 247 阅读 · 0 评论 -
整理Spring Cloud 基于Spring Boot2.x.x版本升级后的改变
以前搞的Spring Cloud项目,是基于spring boot 1.5.x的,对应Spring Cloud 版本是Edgware,现在重新梳理Spring Cloud 相关知识点,发现很多都跟以前不一样了,比如 Feign中,1.0版本系列,是不允许使用@GetMapping注解的,现在使用Finchley版本,就支持。以下基于Finchley版本整理了版本带来相关改变!欢迎各位纠正补充!...原创 2019-03-18 15:27:49 · 1887 阅读 · 0 评论