分布式框架seata at模式 解析 最近github上阿里的分布式框架seata十分的红热,这框框架其实去年我也听说过,稍微碰了一下(稍微接触了一下皮毛的皮毛),也没有很搞懂。最近由于这个框架又开始慢慢的成熟了,打算再重新接触一下这个框架,不过目前这个框架还在完善中,文档有是有但不是很全的那种,不过比去年是好点了。 如果不了解seata的同学,文章末尾附上一些链接,可以先学习一下。我们接下来一起来看看大概...
ApplicationContextInitializer接口 今天在看spring cloud官方文档的时候看到ApplicationContextInitializer,官网上对这个类的解释如下 Callback interface for initializing a Spring ConfigurableApplicationContext prior to being ConfigurableApplicationContext#re...
spring security 4 filter SecurityContextPersistenceFilter(三) 今天我们讲的filter是SecurityContextPersistenceFilter,通过其名字,就能大概猜出来这个过滤器的作用,就是用来持久化SecurityContext实例用的,也是spring security filter 核心的过滤器之一。 接下去我们将根据其源码分析一下其作用,先看看doFilter这个方法 public void doFilter(Servl...
spring security oauth2的学习过程(四) 今天来学习一下如何做一个登录框,验证用户账号密码,验证成功之后如何从授权服务器里获取token,方便之后的操作。 首先我们要做一个简单的登录框,前面我们既然用到了springsecurity oauth2的东西,那必然会用到spring security,它是一个权限控制的东西,东西很多,有兴趣的同志大家自己可以去网上学习一下,同类的东西还有shiro,还有这里有一点...
spring security 4 filter ExceptionTranslationFilter(二) 今天学习的filter是ExceptionTranslationFilter,看名字是异常翻译过滤器 public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { HttpServletRequest ...
spring security 4 filter UsernamePasswordAuthenticationFilter(一) spring security 就是由一系列filter组成的一个安全认证框架,熟悉其中一些重要的filter是对熟悉spring security本身就是一种方式。首先我将先附上spring security官网上几个默认的filter 然后我会重点讲几个,今天我们先说UsernamePasswordAuthenticationFilter这个过滤器,从官网上的截图可以看到左边...
spring security oauth2的学习过程(二) 前面我们已经把基本的授权服务器弄好了,并能根据四种方式获取到token了。今天就再讲讲具体的一些东西。 今天要做的事情如下 1,管理用户数据 2,修改原生返回token的内容(令牌增强器) 3,tokenStore(令牌持久化接口,令牌存储介质) 管理用户数据 比方我们前一篇文中的用户名和密码是使用spring security auth2.0 默认产...
spring security oauth2的学习过程(一) 几个月之前我我发了一段时间研究过这个东西,最新想重新温习一下,然后把这个过程记录下来。首先我们先来理解一下auth2是什么,这边我们引用了阮一峰的一篇文章(写的也是很不错),这里我直接附上其链接http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html 首先要好好的去理解这篇文章,理解好了,才会有对后面的一些东西轻松一点。如果你看过...
sharding-jdbc的读写分离,数据库主从同步实践 前段时间看到sharding-jdbc这个东西,我就用它来实践一下读写分离,下面是我要下面的三个步骤来写这篇文章 1,弄一个基础框架spring boot + mybatis generator 2,整合sharding-jdbc,实现读写分离 3,实现主从数据库同步数据 首先我们来简单的将一下第一,二步,因为比较简单,第三步对于自己来说相当复杂一点。 第一步: 自己简单的...
actuator 中health这个endpoint的源码解剖 用过spring boot的都应该知道里面有一个actuator的starter,这个actuator其实非常有用,它提供了很多监控的endpoint,比如今天要讲的health,info。。。。最近在弄的spring boot admin2.0其实也是以这个jar为基础来做的 今天我们来讲一下health的endpoint。首先说一下spring boot 1.x和spr...
eureka 心跳机制 源码解析 今天看了一篇文件,介绍了一个eureka心跳中的一个续租间隔时间的问题,看了文章中的一些内容想了解一下eureka心跳机制的原理以及源码 首先我从DiscoveryClient这个类开始,讲这个类之前,我们先来了解一下几个概念 Register:服务注册 当Eureka客户端向Eureka Server注册时,它提供自身的元数据,比如IP地址、端口,运行状况指示符URL,主页等。 ...
java 线程池知识点梳理 今天本来在看eureka的心跳机制的,过程中碰到一些线程池的知识点,之前可能没有很全面的对线程池这一块去了解过,对一些相关类之间的关系不是很了解。趁着这个机会,今天打算更深入的去了解这一块东西 首先我用startUML工具画了一个图,给大家简单的展示一下线程池相关类的关联信息(因为好久没有用和这个工具了,有画的不好的地方,请不要见怪) 上图大致的展示了其关联关系,首先从头说起,...
spring boot 自动配置功能解剖 说起spring boot和spring的区别,大家第一反应就是spring boot 少了很多配置,但不是说少了很多配置很多功能就没有了,或者比spring就少了很多功能,而是spring boot 自己约定了很多默认配置,让大家感觉不到其中的一些信息 问题来了,spring boot的自动配置怎么实现的?今天我将自己这2天学习到的东西分享一下,有不对的地方可以说出来一起讨论 ...
Spring Cloud Zuul 整合 swagger 最近我们有一个需求,就是把各个系统的swagger文档集中在一起。有了这么一个需求之后,我去百度了,结合swagger的源码实现了一下 首先我们可以先看看单个系统的swagger页面, 第一部分是一个下拉框,就是一个选择swagger资源的下拉框,默认就是本应用; 第二部分是一个请求,是第一部分数据的请求 第三部分是第二部分请求的一个结果展示,json部...
SpringBoot使用ApplicationEvent&Listener完成业务解耦 ApplicationEvent以及Listener是Spring为我们提供的一个事件监听、订阅的实现,内部实现原理是观察者设计模式,设计初衷也是为了系统业务逻辑之间的解耦,提高可扩展性以及可维护性。事件发布者并不需要考虑谁去监听,监听具体的实现内容是什么,发布者的工作只是为了发布事件而已。我们平时日常生活中也是经常会有这种情况存在,如:我们在平时拔河比赛中,裁判员给我们吹响了开始的信号,也就是给...
zipkin小实践 Zipkin是什么Zipkin分布式跟踪系统;它可以帮助收集时间数据,解决在microservice架构下的延迟问题;它管理这些数据的收集和查找;Zipkin的设计是基于谷歌的Google Dapper论文。 每个应用程序向Zipkin报告定时数据,Zipkin UI呈现了一个依赖图表来展示多少跟踪请求经过了每个应用程序;如果想解决延迟问题,可以过滤或者排序所有的跟踪请求,并且可以查看每个跟踪请求...
@Import注解 在应用中,有时没有把某个类注入到IOC容器中,但在运用的时候需要获取该类对应的bean,此时就需要用到@Import注解。示例如下: 先创建两个类,不用注解注入到IOC容器中,在应用的时候在导入到当前容器中。 1、创建Dog和Cat类 Dog类:package com.example.demo; public class Dog { } Cat类: package com.ex...
自动收集系统api信息功能实践 最近我们部门要做一个api store的项目,项目的其中一个目的就是将所有公司的项目的接口都收集起来。然后让我去研究相关技术。技术解决的方式: 1,Spring boot 的插件actuator ,具体步骤大家去网上看,很简单,只要去加载那个jar就可以了。它有很多监控点,大概如下 我这边先访问一下/health接口,显示结果如下 注意的点:actuato...
docker实践和学习 docker容器是我们公司使用的容器,结合k8s使用。现在容器技术也是比较火的技术了,优点也是比较明显的。今天我将重点讲述一下docker的使用 docker的安装 这个安装也是分为电脑系统的,不同的系统环境可能会不一样,具体看菜鸟教程中的安装教程 http://www.runoob.com/docker/ubuntu-docker-install.html ...
异步消息(一)AMQP & JMS对比 AMQP & JMS对比 在研究spring cloud bus的时候,发现了AMQP这个东西,然后查了网上的资料大概弄懂了其意义,以及跟jms的区别,一下是我网上找到的一篇文章,仅供大家参考 JMS 通常而言提到JMS(Java MessageService)实际上是指JMS API。JMS是由Sun公司早期提出的消息标准,旨在为java应用提供统一的消息操作,包...