
SpringBoot2.0系列教程
本专栏基于Springboot2.2.3,配套自己写的代码例子,内容设计基本的配置用法,web,数据库,Redis,也涉及到企业级开发的消息队列,dubbo,单点登录,OAuth2,搜索引擎等方面,并有源码的简单分析,适合作为入门教程
smileNicky
java程序员,软件工程专业,专注于sql调优,SpringBoot,spring框架学习,个人邮箱nickypm@foxmail.com,公众号nickymp
-
原创 SpringCloud系列之分布式配置中心学习
分布式微服务项目,就会有很多的模块,比如微服务A、微服务B等等,每个工程都有一套配置文件,随着业务增长,肯定会有很多配置,分散管理,不能实现统一的管理,所以就有了微服务的配置文件统一管理组件,比如spring cloud官方的spring cloud config、携程的 Apollo,还有最近比较火的阿里 nacos,每款产品各有自己的特点,不过本博客只介绍spring cloud config2020-09-09 22:11:262437
5
-
原创 SpringCloud系列之服务容错保护Netflix Hystrix
1. 什么是雪崩效应?微服务环境,各服务之间是经常相互依赖的,如果某个不可用,很容易引起连锁效应,造成整个系统的不可用,这种现象称为服务雪崩效应。如图,引用国外网站的图例:https://www.javatpoint.com/fault-tolerance-with-hystrix#,如图系统各种服务相互调用,一旦一个服务出现问题,假如系统没有熔断器,很容易影响其它模块使用可用自己画图表示这种情况,如图:A作为服务提供者,B为A的服务消费者,C和D是B的服务消费者。A不可用引起了B的不可用,像滚雪球2020-08-05 16:55:19994
0
-
原创 SpringCloud系列之声明式服务调用Netflix Feign
在上一章的学习中,我们知道了微服务的基本概念,知道怎么基于Ribbon+restTemplate的方式实现服务调用,接着上篇博客,我们学习怎么基于Feign实现服务调用,请先学习上篇博客,然后再学习本篇博客Feign是一个声明式的web service客户端,它使得编写web service客户端更为容易。创建接口,为接口添加注解,即可使用Feign。Feign可以使用Feign注解或者JAX-RS注解,还支持热插拔的编码器和解码器。环境准备:JDK 1.8SpringBoot2.2.1Spri2020-07-28 14:20:06922
0
-
原创 SpringBoot从入门到精通系列(专栏导航)
本专栏基于Springboot2.0,配套自己写的代码例子,内容设计基本的配置用法,web,数据库,Redis,也涉及到企业级开发的消息队列,dubbo,搜索引擎等方面,并有源码的简单分析,适合作为入门教程2020-04-10 17:59:073158
0
-
原创 Spring Cloud Alibaba系列之服务防护组件Sentinel
SpringCloud Alibaba系列之服务防护组件Sentinel,Sentinel是阿里巴巴开源的一款高可用的分布式防护组件,主要应用于流量控制、流量整形、熔断降级、系统自适应保护、热点防护等多个维度,原生支持 Java/Go/C++ 等多种语言,并且提供Istio/Envoy 全局流控支持来为 Service Mesh 提供高可用防护的能力2021-02-05 17:49:55246
0
-
原创 Spring Cloud Alibaba系列之分布式服务组件Dubbo
Spring Cloud Alibaba Dubbo是Spring Cloud Alibaba项目中的一个,扩展了分布式服务调用能力,不仅能使 Apache Dubbo 和 OpenFeign 共存,还允许 Spring Cloud 标准调用底层通过 Dubbo 支持的通讯协议传输2021-01-19 17:22:36364
0
-
原创 Spring Cloud Alibaba系列之Nacos分布式配置中心
Spring Cloud Alibaba系列之Nacos分布式配置中心,Spring Cloud Alibaba Nacos Config提供用于存储配置和其他元数据的 key/value 存储,为分布式系统中的外部化配置提供服务器端和客户端支持,nacos config是Spring Cloud config Server和config Client的替代方案2021-01-19 16:46:47398
0
-
原创 SpringCloud系列之API网关(Gateway)服务Zuul
1、什么是API网关API网关是所有请求的入口,承载了所有的流量,API Gateway是一个门户一样,也可以说是进入系统的唯一节点。这跟面向对象设计模式中的Facet模式很像。API Gateway封装内部系统的架构,并且提供API给各个客户端。它还可能有其他功能,如授权、监控、负载均衡、缓存、请求分片和管理、静态响应处理等API Gateway负责请求转发、合成和协议转换。所有来自客户端的请求都要先经过API Gateway,然后路由这些请求到对应的微服务。API Gateway将经常通过调用多个微2020-08-06 17:38:152288
0
-
原创 Spring Cloud Alibaba系列之快速开始搭建Nacos环境
Nacos(官方网站:https://nacos.io)致力于帮助您发现,配置和管理微服务。它提供了一组简单有用的功能,使您能够实现动态服务发现,服务配置管理以及服务和流量管理。Nacos使您可以更轻松快捷地构建,交付和管理微服务平台。它是支持采用微服务或云原生方法的以服务为中心的现代应用程序体系结构的基础架构。2020-12-25 15:55:07570
0
-
原创 Spring Cloud Alibaba系列之Nacos服务注册与发现
Spring Cloud Alibaba系列之Nacos服务注册与发现,服务注册与发现是微服务架构体系中最关键的组件之一。Spring Cloud Alibaba Nacos Discovery组件提供了服务自动注册到 Nacos 服务端的功能,并且能够动态感知和刷新某个服务实例的服务列表。除此之外,Nacos Discovery 也将服务实例的一些元数据信息,例如 host,port, 健康检查 URL,主页等内容注册到 Nacos2020-12-26 13:32:56620
2
-
原创 SpringCloud系列之API Gateway开发手册(Hoxton版本)
1 什么是API网关?API网关是所有请求的入口,承载了所有的流量,API Gateway是一个门户一样,也可以说是进入系统的唯一节点。这跟面向对象设计模式中的Facet模式很像。API Gateway封装内部系统的架构,并且提供API给各个客户端。它还可能有其他功能,如授权、监控、负载均衡、缓存、请求分片和管理、静态响应处理等2020-09-16 13:30:362843
6
-
原创 SpringCloud系列之客户端负载均衡Netflix Ribbon
负载均衡是一种基础的网络服务,它的核心原理是按照指定的负载均衡算法,将请求分配到后端服务集群上,从而为系统提供并行处理和高可用的能力。提到负载均衡,你可能想到nginx。对于负载均衡,一般分为服务端负载均衡和客户端负载均衡Ribbon 是由 Netflix 发布的负载均衡器,它有助于控制 HTTP 和 TCP 的客户端的行为。Ribbon 属于客户端负载均衡。2020-07-31 17:41:172010
0
-
原创 SpringCloud系列使用Netflix Eureka进行服务治理
Spring Cloud是一个分布式的整体解决方案的框架。基于Spring Boot开发。Spring Cloud 为开发者提供了在分布式系统(配置管理,服务发现,负载,网关,消息总线,集群管理,安全管理,分布式锁,分布式事务等等)中快速构建的工具,使用Spring Cloud的开发者可以快速的启动服务或构建应用、同时能够快速和云平台资源进行对接。2020-07-27 18:29:161519
2
-
原创 SpringSecurity系列之极速入门与实践教程
Spring Security 是 Spring 家族中的一个安全管理框架,应用程序的两个主要区域是“认证”和“授权”(或者访问控制)。Spring Security是针对Spring项目的安全框架,也是Spring Boot底层安全模块默认的技术选型2020-07-24 17:12:041031
0
-
原创 SpringBoot系列之Actuator监控管理极速入门与实践
SpringBoot官方提供了spring-boot-starter-actuator场景启动器用于系统的监控管理,可以通过HTTP,JMX,SSH协议来进行操作,自动得到审计、健康及指标信息等2020-07-23 18:12:141222
0
-
原创 SpringBoot系列之IDEA项目中设置热部署教程
1、新建SpringBoot项目环境准备JDK 1.8SpringBoot2.2.1Maven 3.2+开发工具smartGitIntelliJ IDEA2018创建一个SpringBoot Initialize项目,详情可以参考我之前博客:SpringBoot系列之快速创建项目教程检查spring-boot-devtools是否加上?<dependency> <groupId>org.springframework.boot&2020-07-23 13:27:21883
0
-
原创 SpringBoot系列之发送邮件极速入门与实践
SpringBoot系列之发送邮件开发手册一、前言介绍二、例子实践2.1 实验环境准备2.2 Meavn配置文件2.3 application配置2.4 发送文本格式邮件2.5 发送Html格式邮件2.6 发送html内嵌图片2.7 发送模板html邮件2.8 发送Attachment邮件一、前言介绍邮件发送业务,是很多公司都有的,本博客介绍一下基于SpringBoot的邮件发送功能,邮箱服务基于腾讯QQ邮箱SpringBoot的肯定有很多场景启动器starter,SpringBoot官方提供了spr2020-07-22 20:52:171107
0
-
原创 SpringBoot系列之使用Spring Task实现定时任务
SpringBoot系列之使用Spring Task实现定时任务1、前言介绍1、前言介绍定时任务是企业开发中很常用的,比如定时推送一些接口数据,在java中实现定时任务的方法有Spring Task、Quartz等等框架,也有JDK自带的ScheduledExecutorService、TimerQuartz框架比较复杂,之前我写过一个入门教程,读者可以参考学习:Quartz系列之任务调度框架原理简介Spring Task是Spring3.0以后自带的task,可以将它看成一个轻量级的Quartz,2020-07-22 14:56:411100
0
-
翻译 SpringBoot系列之异步任务@Async使用教程
SpringBoot系列之异步任务@Async使用教程例子翻译自国外的两篇博客:https://spring.io/guides/gs/async-method/实验环境准备:JDK 1.8SpringBoot2.2.1Maven 3.2+开发工具IntelliJ IDEAsmartGit@JsonIgnoreProperties(ignoreUnknown = true),将这个注解写在类上之后,就会忽略类中不存在的字段,可以满足当前的需要。使用Future获得异步执行2020-07-20 12:57:421185
2
-
原创 Elasticsearch系列之极速入门与实践教程
SpringBoot系列之极速入门与实践教程,什么Elasticsearch?Elasticsearch是一款开源的分布式搜索引擎,基于 JSON 开发而来,具有 RESTful 风格,基于 Apache Lucene 的基础上开发而成的2020-07-16 18:06:052800
0
-
原创 SpringBoot系列之前后端接口安全技术JWT
JSON Web令牌(JWT)是一个开放标准(RFC 7519),它定义了一种紧凑且自包含的方式,用于在各方之间安全地将信息作为JSON对象传输。由于此信息是经过数字签名的,因此可以进行验证和信任。可以使用秘密(使用HMAC算法)或使用RSA或ECDSA的公钥/私钥对对JWT进行签名。2020-07-10 14:05:521869
2
-
原创 SpringBoot系列之RestTemplate调https接口
业务:本系统接口都是http的,调用第三方接口,因为做了安全性校验,所以不能通过RestTemplate调用方法:重写覆盖SimpleClientHttpRequestFactory抽象类的prepareConnection方法package com.minstone.apprBase.common.utils.http.rest;import org.apache.http.conn.ssl.SSLContexts;import org.apache.http.conn.ssl.TrustStr2020-06-17 15:55:311682
0
-
原创 OAuth2.0系列之使用JWT令牌实践教程(八)
OAuth2.0系列之使用JWT令牌实践教程(八)1、文章前言介绍2、例子实验验证3、功能简单测试OAuth2.0系列博客:OAuth2.0系列之基本概念和运作流程(一)OAuth2.0系列之授权码模式实践教程(二)OAuth2.0系列之简化模式实践教程(三)OAuth2.0系列之密码模式实践教程(四)OAuth2.0系列之客户端模式实践教程(五)OAuth2.0系列之信息数据库存储教程(六)OAuth2.0系列之信息Redis存储教程(七)OAuth2.0系列之JWT令牌实践教程(八)2020-06-17 14:50:221956
0
-
原创 OAuth2.0系列之信息Redis存储实践(七)
OAuth2.0系列之信息Redis存储教程(七)1 前言介绍2、典型例子实践3、OAuth2.0授权功能简单测试OAuth2.0系列博客:OAuth2.0系列之基本概念和运作流程(一)OAuth2.0系列之授权码模式实践教程(二)OAuth2.0系列之简化模式实践教程(三)OAuth2.0系列之密码模式实践教程(四)OAuth2.0系列之客户端模式实践教程(五)OAuth2.0系列之信息数据库存储教程(六)OAuth2.0系列之信息Redis存储教程(七)OAuth2.0系列之集成JW2020-06-16 18:26:491482
0
-
原创 OAuth2.0系列之信息数据库存储实践(六)
在前面的学习中,我们配置客户端信息,一般会如下配置,如果有多个客户端的话,就复制一遍,修改一些参数,很显然,这种在生产环境是不适应的,所以Spring Security OAuth2是有提供几种存储方式的,默认是基于内存存储2020-06-16 14:50:181442
0
-
原创 OAuth2.0系列之客户端模式实践教程(五)
OAuth2.0系列之客户端模式实践教程(五)1、客户端模式简介1.1 前言简介1.2 授权流程图2、例子实践2.1 实验环境准备2.2 OAuth2.0角色2.3 OAuth2.0配置类2.4 Security配置类2.5 功能简单测试OAuth2.0系列博客:OAuth2.0系列之基本概念和运作流程(一)OAuth2.0系列之授权码模式实践教程(二)OAuth2.0系列之简化模式实践教程(三)OAuth2.0系列之密码模式实践教程(四)OAuth2.0系列之集成JWT实现单点登录1、客2020-06-11 16:27:521537
0
-
原创 OAuth2.0系列之密码模式实践教程(四)
OAuth2.0系列之密码模式实践教程(四)1、密码模式简介1.1 前言简介1.2 授权流程图2、例子实践2.1 实验环境准备2.2 OAuth2.0角色2.3 OAuth2.0配置类2.4 Security配置类2.5 功能简单测试OAuth2.0系列博客:OAuth2.0系列之基本概念和运作流程(一)OAuth2.0系列之授权码模式实践教程(二)OAuth2.0系列之简化模式实践教程(三)OAuth2.0系列之密码模式实践教程(四)OAuth2.0系列之集成JWT实现单点登录1、密码模2020-06-11 15:28:561647
0
-
原创 OAuth2.0系列之简化模式实践教程(三)
OAuth2.0系列之简化模式实践教程(三)1、授权码模式简介1.1 前言简介1.2 授权流程图2、例子实践2.1 实验环境准备2.2 OAuth2.0角色2.3 OAuth2.0配置类2.4 Security配置类2.5 功能简单测试OAuth2.0系列博客:OAuth2.0系列之基本概念和运作流程(一)OAuth2.0系列之授权码模式实践教程(二)OAuth2.0系列之简化模式实践教程(三)OAuth2.0系列之集成JWT实现单点登录1、授权码模式简介1.1 前言简介在上一篇文章中我2020-06-11 14:14:021388
0
-
原创 OAuth2.0系列之授权码模式实践教程(二)
OAuth2.0系列之授权码模式(authorization code)实践教程(二)1、授权码模式简介1.1 前言1.2 流程图1、授权码模式简介1.1 前言在上一篇文章中我们学习了OAuth2的一些基本概念,对OAuth2有了基本的认识,接着学习OAuth2.0授权模式中的授权码模式ps:OAuth2.0的授权模式可以分为:授权码模式(authorization code)简化模式(implicit)密码模式(resource owner password credentials)客户2020-06-11 12:53:552002
0
-
原创 OAuth2.0系列之基本概念和运作流程(一)
OAuth2.0系列之基本概念和运作流程[OAuth 2.0](https://oauth.net/2)是目前最流行的授权机制,用来授权第三方应用> OAuth是一种开放协议, 允许用户让第三方应用以安全且标准的方式获取该用户在某一网站,移动或者桌面应用上存储的秘密的资源(如用户个人信息,照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。2020-06-04 15:35:332467
0
-
原创 OAuth2.0系列之集成SpringSecurity+JWT实现单点登录
单点登录(Single sign on),英文名称缩写SSO,SSO的意思就是在多系统的环境中,登录单方系统,就可以在不用再次登录的情况下访问相关受信任的系统。也就是说只要登录一次单体系统就可以2020-06-03 16:19:243328
4
-
原创 RabbitMQ系列之极速入门与实战教程
SpringBoot系列之RabbitMQ使用实用教程文章目录1. 消息队列概述1.1 MQ的概述1.2 MQ目的地形式2. 消息队列实现方式2.1 常见MQ框架2.2 MQ实现方式3. RabbitMQ简介3.1 RabbitMQ简介3.2 核心概念3.3 RabbitMQ运行机制3.4 Exchange类型4. RabbitMQ安装部署4.1 Docker版本部署RabbitMQ4.2 新增...2020-04-10 11:51:181630
0
-
原创 SpringBoot系列之Redis缓存使用详细教程
Spring的缓存抽象Spring从3.1开始定义了一系列抽象接口来统一不同的缓存技术;并支持使用Java Caching(JSR-107)注解简化我们进行缓存开发。Spring Cache 只负责维护抽象层,具体的实现由你的技术选型来决定。将缓存处理和缓存技术解除耦合。JSR107Java Caching(JSR-107)定义了5个核心接口,分别是CachingProvider, Cach...2020-04-03 17:58:233816
0
-
原创 SpringBoot系列之集成Dubbo的方式
SpringBoot系列之集成Dubbo的方式本博客介绍Springboot框架集成Dubbo实现微服务的3种常用方式,对于Dubbo知识不是很熟悉的,请先学习我上一篇博客:SpringBoot系列之集成Dubbo实现微服务教程,本博客只是对上篇博客的补充,上篇博客已经介绍过的就不重复介绍2020-01-12 15:39:112539
0
-
原创 SpringBoot系列之集成Dubbo实现微服务教程
一、分布式基本理论1.1、分布式基本定义《分布式系统原理与范型》定义:“分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像单个相关系统”分布式系统(distributed system)是建立在网络之上的软件系统。1.2 架构发展演变架构的发展是由最初的单一应用架构构建的,一般就是ORM框架方便数据库操作。不过随着系统越来越复杂,单一应用架构会变得难以维护,所以架构逐渐演变...2020-01-05 22:13:393823
0
-
原创 SpringBoot系列之自定义starter实践教程
SpringBoot系列之自定义starter实践教程Springboot是有提供了很多starter的,starter翻译过来可以理解为场景启动器,所谓场景启动器配置了自动配置等等对应业务模块的一个工程,有需要时候直接引入项目就可以,比如需要使用rabbitMQ,直接引入spring-boot-starter-activemq既可,详细介绍可以参考Springboot官方文档关于starter...2020-01-02 20:35:203170
0
-
原创 SpringBoot源码学习系列之启动原理简介
本博客通过debug方式简单跟一下Springboot application启动的源码,Springboot的启动源码是比较复杂的,本博客只是简单梳理一下源码,浅析其原理2020-01-01 17:00:502672
0
-
原创 SpringBoot系列之Spring Data Jpa集成教程
SpringBoot系列之Spring Data Jpa集成教程Spring Data Jpa是属于Spring Data的一个子项目,Spring data项目是一款集成了很多数据操作的项目,其下的子项目有如下图所示:官方也有提供了英文版的文档,具体可以参考Spring data官方文档JPA是一个规范,并非具体的实现框架,而Spring Data JPA就是依赖于Hibernate J...2019-12-15 21:40:212858
0
-
原创 SpringBoot系列之集成Mybatis教程
SpringBoot系列之集成Mybatis教程<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </...2019-12-15 18:45:574741
0
-
原创 SpringBoot系列之集成Druid配置数据源监控
SpringBoot系列之集成Druid配置数据源监控继上一篇博客SpringBoot系列之JDBC数据访问之后,本博客再介绍数据库连接池框架Druid的使用环境准备:IDEAMaven先新建一个Springboot Initializer项目,详情参考SpringBoot系列之快速创建Initializer项目,注意引入必须的JDBC,web依赖等等,因为Druid默认没提供,所以...2019-12-15 12:29:352830
2