自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(92)
  • 资源 (4)
  • 问答 (6)
  • 收藏
  • 关注

原创 分布式框架seata at模式 解析

最近github上阿里的分布式框架seata十分的红热,这框框架其实去年我也听说过,稍微碰了一下(稍微接触了一下皮毛的皮毛),也没有很搞懂。最近由于这个框架又开始慢慢的成熟了,打算再重新接触一下这个框架,不过目前这个框架还在完善中,文档有是有但不是很全的那种,不过比去年是好点了。 如果不了解seata的同学,文章末尾附上一些链接,可以先学习一下。我们接下来一起来看看大概...

2019-08-19 10:17:04 1915 1

原创 ApplicationContextInitializer接口

今天在看spring cloud官方文档的时候看到ApplicationContextInitializer,官网上对这个类的解释如下Callback interface for initializing a Spring ConfigurableApplicationContextprior to being ConfigurableApplicationContext#re...

2019-03-26 11:17:35 396

原创 spring security 4 filter SecurityContextPersistenceFilter(三)

今天我们讲的filter是SecurityContextPersistenceFilter,通过其名字,就能大概猜出来这个过滤器的作用,就是用来持久化SecurityContext实例用的,也是spring security filter 核心的过滤器之一。 接下去我们将根据其源码分析一下其作用,先看看doFilter这个方法public void doFilter(Servl...

2019-03-13 15:24:26 1684

原创 spring security oauth2的学习过程(四)

今天来学习一下如何做一个登录框,验证用户账号密码,验证成功之后如何从授权服务器里获取token,方便之后的操作。 首先我们要做一个简单的登录框,前面我们既然用到了springsecurity oauth2的东西,那必然会用到spring security,它是一个权限控制的东西,东西很多,有兴趣的同志大家自己可以去网上学习一下,同类的东西还有shiro,还有这里有一点...

2019-03-13 15:23:03 1682

原创 spring security 4 filter ExceptionTranslationFilter(二)

今天学习的filter是ExceptionTranslationFilter,看名字是异常翻译过滤器public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { HttpServletRequest ...

2019-03-04 16:46:52 640

原创 spring security 4 filter UsernamePasswordAuthenticationFilter(一)

spring security 就是由一系列filter组成的一个安全认证框架,熟悉其中一些重要的filter是对熟悉spring security本身就是一种方式。首先我将先附上spring security官网上几个默认的filter然后我会重点讲几个,今天我们先说UsernamePasswordAuthenticationFilter这个过滤器,从官网上的截图可以看到左边...

2019-03-04 15:11:00 1013

原创 spring security oauth2的学习过程(二)

前面我们已经把基本的授权服务器弄好了,并能根据四种方式获取到token了。今天就再讲讲具体的一些东西。今天要做的事情如下1,管理用户数据2,修改原生返回token的内容(令牌增强器)3,tokenStore(令牌持久化接口,令牌存储介质) 管理用户数据 比方我们前一篇文中的用户名和密码是使用spring security auth2.0 默认产...

2019-02-26 14:13:21 532 1

原创 spring security oauth2的学习过程(一)

几个月之前我我发了一段时间研究过这个东西,最新想重新温习一下,然后把这个过程记录下来。首先我们先来理解一下auth2是什么,这边我们引用了阮一峰的一篇文章(写的也是很不错),这里我直接附上其链接http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html 首先要好好的去理解这篇文章,理解好了,才会有对后面的一些东西轻松一点。如果你看过...

2019-02-26 14:12:55 1174 1

原创 sharding-jdbc的读写分离,数据库主从同步实践

  前段时间看到sharding-jdbc这个东西,我就用它来实践一下读写分离,下面是我要下面的三个步骤来写这篇文章1,弄一个基础框架spring boot + mybatis generator 2,整合sharding-jdbc,实现读写分离3,实现主从数据库同步数据 首先我们来简单的将一下第一,二步,因为比较简单,第三步对于自己来说相当复杂一点。第一步:自己简单的...

2018-11-07 10:17:01 11470 1

原创 actuator 中health这个endpoint的源码解剖

       用过spring boot的都应该知道里面有一个actuator的starter,这个actuator其实非常有用,它提供了很多监控的endpoint,比如今天要讲的health,info。。。。最近在弄的spring boot admin2.0其实也是以这个jar为基础来做的    今天我们来讲一下health的endpoint。首先说一下spring boot 1.x和spr...

2018-10-17 17:10:24 2494

原创 eureka 心跳机制 源码解析

今天看了一篇文件,介绍了一个eureka心跳中的一个续租间隔时间的问题,看了文章中的一些内容想了解一下eureka心跳机制的原理以及源码 首先我从DiscoveryClient这个类开始,讲这个类之前,我们先来了解一下几个概念 Register:服务注册 当Eureka客户端向Eureka Server注册时,它提供自身的元数据,比如IP地址、端口,运行状况指示符URL,主页等。...

2018-09-07 15:32:53 7661 2

原创 java 线程池知识点梳理

   今天本来在看eureka的心跳机制的,过程中碰到一些线程池的知识点,之前可能没有很全面的对线程池这一块去了解过,对一些相关类之间的关系不是很了解。趁着这个机会,今天打算更深入的去了解这一块东西   首先我用startUML工具画了一个图,给大家简单的展示一下线程池相关类的关联信息(因为好久没有用和这个工具了,有画的不好的地方,请不要见怪)上图大致的展示了其关联关系,首先从头说起,...

2018-09-05 16:55:56 277

原创 spring boot 自动配置功能解剖

    说起spring boot和spring的区别,大家第一反应就是spring boot 少了很多配置,但不是说少了很多配置很多功能就没有了,或者比spring就少了很多功能,而是spring boot 自己约定了很多默认配置,让大家感觉不到其中的一些信息 问题来了,spring boot的自动配置怎么实现的?今天我将自己这2天学习到的东西分享一下,有不对的地方可以说出来一起讨论...

2018-08-22 17:01:02 2425

原创 Spring Cloud Zuul 整合 swagger

          最近我们有一个需求,就是把各个系统的swagger文档集中在一起。有了这么一个需求之后,我去百度了,结合swagger的源码实现了一下  首先我们可以先看看单个系统的swagger页面,第一部分是一个下拉框,就是一个选择swagger资源的下拉框,默认就是本应用;第二部分是一个请求,是第一部分数据的请求第三部分是第二部分请求的一个结果展示,json部...

2018-07-30 11:04:26 1294

转载 SpringBoot使用ApplicationEvent&Listener完成业务解耦

ApplicationEvent以及Listener是Spring为我们提供的一个事件监听、订阅的实现,内部实现原理是观察者设计模式,设计初衷也是为了系统业务逻辑之间的解耦,提高可扩展性以及可维护性。事件发布者并不需要考虑谁去监听,监听具体的实现内容是什么,发布者的工作只是为了发布事件而已。我们平时日常生活中也是经常会有这种情况存在,如:我们在平时拔河比赛中,裁判员给我们吹响了开始的信号,也就是给...

2018-07-04 14:44:52 2332 1

原创 zipkin小实践

Zipkin是什么Zipkin分布式跟踪系统;它可以帮助收集时间数据,解决在microservice架构下的延迟问题;它管理这些数据的收集和查找;Zipkin的设计是基于谷歌的Google Dapper论文。每个应用程序向Zipkin报告定时数据,Zipkin UI呈现了一个依赖图表来展示多少跟踪请求经过了每个应用程序;如果想解决延迟问题,可以过滤或者排序所有的跟踪请求,并且可以查看每个跟踪请求...

2018-06-30 14:30:45 1414

转载 @Import注解

在应用中,有时没有把某个类注入到IOC容器中,但在运用的时候需要获取该类对应的bean,此时就需要用到@Import注解。示例如下: 先创建两个类,不用注解注入到IOC容器中,在应用的时候在导入到当前容器中。 1、创建Dog和Cat类 Dog类:package com.example.demo;public class Dog {}Cat类:package com.ex...

2018-06-28 17:12:45 1438

原创 自动收集系统api信息功能实践

        最近我们部门要做一个api store的项目,项目的其中一个目的就是将所有公司的项目的接口都收集起来。然后让我去研究相关技术。技术解决的方式:    1,Spring boot 的插件actuator ,具体步骤大家去网上看,很简单,只要去加载那个jar就可以了。它有很多监控点,大概如下        我这边先访问一下/health接口,显示结果如下    注意的点:actuato...

2018-04-13 16:26:54 822 2

原创 docker实践和学习

docker容器是我们公司使用的容器,结合k8s使用。现在容器技术也是比较火的技术了,优点也是比较明显的。今天我将重点讲述一下docker的使用 docker的安装    这个安装也是分为电脑系统的,不同的系统环境可能会不一样,具体看菜鸟教程中的安装教程    http://www.runoob.com/docker/ubuntu-docker-install.html    ...

2018-03-22 16:07:54 180

转载 异步消息(一)AMQP & JMS对比

AMQP & JMS对比在研究spring cloud bus的时候,发现了AMQP这个东西,然后查了网上的资料大概弄懂了其意义,以及跟jms的区别,一下是我网上找到的一篇文章,仅供大家参考JMS 通常而言提到JMS(Java MessageService)实际上是指JMS API。JMS是由Sun公司早期提出的消息标准,旨在为java应用提供统一的消息操作,包...

2018-03-12 20:07:21 223

原创 spring cloud学习——spring Cloud bus(四)

中文翻译过来是消息总线,我们在以前那个spring cloud config中会用到。spring cloud config中,当远程git/svn中配置文件改变之后,会通过消息总线去获取最新的配置文件信息,而不需要重启。bus的大致架构图如下(图是网上拷贝的)流程:1,利用git、svn中的webhook(钩子)功能有点类似于触发器,当配置文件修改之后会给configserver发一个bus/r...

2018-03-07 19:40:17 256

原创 spring cloud学习——Spring Cloud Netflix-zuul(三)

前面我们已经讲了netflix中的eureka,现在我们来讲讲netflix中的zuul(网关)。首先讲一下为什么会有zuul出现,任何东西的出现都是有原因的。现在我讲一下两种情况让大家弄懂zuul的大概作用。1,首先我们在弄微服务项目的时候,会将传统的一个大项目A细分化成很小的,功能独立的项目。问题来了,以前的传统大项目A可能访问之前有什么权限控制,token验证之类的东西。如果使用微服务,将大...

2018-03-03 20:24:36 324

原创 spring cloud eureka 消费者使用服务名访问,不能访问的问题

     这里说一下我自己犯的一个错误。我有三个项目eureka-server,provide-service,consumer-service,以下我统称为ABC三个项目。现在的步骤是这样的,先访问C项目的一个接口,接口里面用restTemplate发送的一个请求,具体看下面@RestControllerpublic class TestController { @Autowired...

2018-03-03 20:15:40 34248 21

转载 @Configuration和@Bean的用法和理解

@Configuration和@Bean的用法和理解spring Boot提倡约定优于配置,如何将类的生命周期交给spring 1、第一种自己写的类,Controller,Service。 用@controller @service即可2、第二种,集成其它框架,比如集成shiro权限框架,集成mybatis分页插件PageHelper,第三方框架的核心类都要交于Spring大管家管理@Config...

2018-02-21 20:34:33 478

原创 spring cloud学习——Spring Cloud Netflix-Eureka(二)

Spring Cloud包含了非常多的子框架,其中,Spring Cloud Netflix是其中一套框架,由Netflix开发后来又并入Spring Cloud大家庭,它主要提供的模块包括:服务发现、断路器和监控、智能路由、客户端负载均衡等。组件Spring Cloud Netflix框架刚好就满足了上面所有的需求,而且最重要的是,使用起来非常的简单。Spring Cloud Netflix包含...

2018-02-16 13:15:07 325

转载 maven 继承多个父jar的做法

继承是包依赖管理的最简单手段Maven对依赖包的关系管理的主要手段是继承,这很像Java语言的继承关系一样。例如最简单的继承方式,在parent pom文件定义了jar的version,在children pom中可以不定义jar的version,而children也可以定义version来覆盖parent的version,这种思想完全和Java的继承与重载机制一致。<parent>...

2018-02-13 20:53:09 1468

原创 spring cloud学习——spring cloud config(一)

前言:Spring Cloud 为开发人员提供了一系列的工具来快速构建分布式系统的通用模型 。例如:配置管理、服务发现、断路由、智能路由、微代理、控制总线、一次性Token、全局锁、决策竞选、分布式session、集群状态等等。分布式系统的协助需要一大堆的模型,使用SpringCloud开发者能快速的建立支持实现这些模式的服务和应用程序。他们将适用于任何分布式环境,无论是开发者的个人电脑还是生产环...

2018-02-08 14:16:48 1143

原创 java 幂等性

最近在看spring cloud重试机制的时候,看见了幂等性这个概念,所以去查了一些具体的意思。查完之后感觉其实跟那个struts2控制表单重复提交时一样的意思,那个也是幂等性。幂等性的源头是数学上的定义:f(f(x)) = f(x)。x被函数f作用一次和作用无限次的结果是一样的。幂等性应用在软件系统中,我把它简单定义为:某个函数或者某个接口使用相同参数调用一次或者无限次,其造成的后果是一样的

2018-01-27 22:34:46 2568 1

转载 Spring Cloud重试机制与各组件的重试总结

SpringCloud重试机制配置首先声明一点,这里的重试并不是报错以后的重试,而是负载均衡客户端发现远程请求实例不可到达后,去重试其他实例。Ribbon+RestTemplate的重试对于整合了Ribbon的RestTemplate,例如一个RestTemplate添加了@LoadBalanced 注解:@Bean@LoadBalancedpublic RestTempla...

2018-01-27 21:40:47 2671

转载 map 和javabean的转换

一、目的:Map转为为我们想要的javaBean,使用beanUtils实现,这个工具还有其它的一些功能,比如拷贝属性等等二、样例代码:package org.egg.utils;import org.egg.enums.CommonErrorEnum;import org.egg.exception.CommonException;import o

2018-01-21 15:46:00 809

转载 replace replaceAll replaceFirst

如果不是刚刚复习了下正则表达式,我可能也不会注意到,原来String的replaceAll跟replaceFirst用到了正则表达式!不多解释,看代码:1234String s = "my.test.txt";System.out.println(s.replace(".", "#"));Syste

2018-01-10 19:00:02 186

原创 mysql死锁,可视化工具无法操作

最近不知道什么原因数据库mysql的可视化工具一直卡着不能操作,换成另一个电脑去连着也是这么一个情况,就是所有的客户端连着上去去操作同一个库一直卡!!出现的提示框的内容:“lock wait timeout exceeded; try restarting”.这个后面查了,可能是数据库死锁了,具体怎么死锁的,我不是很清楚。现在我主要讲如果碰到这种数据库死锁的问题该怎么做!

2017-11-02 19:18:47 792

原创 maven 中parent 与 dependencyManagement

今天我们来说说maven的pom.xml文件中parent,dependencyManagement标签。首先我们来说说parent标签,其实这个不难解释,就是父的意思,pom也有继承的。比方说我现在有A,B,C,A是B,C的父级。现在就是有一个情况B,C其实有很多jar都是共同的,其实是可以放在父项目里面,这样,让B,C都继承A就方便管理了。子模块的写法如下:<par...

2017-09-16 19:37:06 10800 3

转载 浅拷贝与深拷贝的区别与实现

需要实现对某个对象的拷贝,做了个小例子,便于日后复习。需要拷贝的对象属于Student类型,包含两个字段sex和userName,而userName是属于引用类型。对应的类是Name,该类包含firstName和lastName。代码如下:   class Name {       private String firstName ="";       private String l

2017-09-11 19:36:39 320

转载 mybatis的selectKey功用

引言(需求)          需求来了,听好了。         车主故事录入(车主分享自己的购车经历),按照长城的需求来说,一个车主只能分享一次故事,如果在进入个人中心里,需判断是否有车主故事了,如果有直接修改,没有则添加。之前蠢蠢的,做个 if 判断嘛,有记录就修改,没有记录就添加,但是一整理的时候发现重复代码太多。后来想到咱们用Hibernate的时候不是有个方法交UpdateorSave...

2017-09-11 19:27:43 536

转载 jvm 年轻态

聊聊JVM的年轻代1.为什么会有年轻代我们先来屡屡,为什么需要把堆分代?不分代不能完成他所做的事情么?其实不分代完全可以,分代的唯一理由就是优化GC性能。你先想想,如果没有分代,那我们所有的对象都在一块,GC的时候我们要找到哪些对象没用,这样就会对堆的所有区域进行扫描。而我们的很多对象都是朝生夕死的,如果分代的话,我们把新创建的对象放到某一地方,当GC的时候先把这块存“朝生夕死

2017-09-11 18:48:11 574

原创 set 去重对象Object

最近在公司要用到大量数据去重,然后网上一查说用set最简单方便了(大家应该知道set里面的数据是不允许重复的),用法其实很简单网上都有。然后我就用了发现没有成功,根本没有达到去重效果(我造的数据里面有2条一模一样的数据)。之后我就上网又查了查,原来它也分情况的。第一种就是你的数据是基本类型的话,直接可以按照网上的例子做,简单的就一个有重复数据的list放到set里面,再导出到lis

2017-09-11 18:45:09 4409

转载 详解Spring中的Profile

前言由于在项目中使用Maven打包部署的时候,经常由于配置参数过多(比如Nginx服务器的信息、ZooKeeper的信息、数据库连接、Redis服务器地址等),导致实际现网的配置参数与测试服务器参数混淆,一旦在部署的时候某个参数忘记修改了,那么就必须重新打包部署,这确实让人感到非常头疼。因此就想到使用Spring中的Profile来解决上面描述的问题,并且在此记录一下其使用的方式,如果有不对的...

2017-08-30 17:29:30 525

原创 数据库锁

之前看到一些文章,或听说过数据库的一些锁。比如乐观锁,悲观锁,表锁,行锁等一些概念性的东西,也比较混乱了。今天我花时间稍微整理了一些数据的这些锁,让我自己能比较系统性的认识这些锁。锁的概念其实也跟java语言中的锁概念是一样的,只是操作对象不同罢了。就是为了解决并发访问同一资源,导致的数据不一致的问题,大家可以把锁看做是控制这一类问题的一种机制。锁的类别一、按操作划分,可分为DML锁、DDL锁二、...

2017-07-16 12:17:23 908

原创 bigint ,int ,smallint,tinyint

使用整数数据的精确数字数据类型。bigint从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。存储大小为 8 个字节。int从 -2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647) 的整型数据(所有数字)。存储大小为 4 个字节。int 的 SQL-92 ...

2017-07-16 11:44:30 293

dubbo-admin-2.5.4

dubbo-admin-2.5.4

2017-01-13

dubbo-admin war包

2016-10-31

java中文乱码解决问题

java中文乱码解决问题

2015-04-15

学习java笔记

android的学习笔记范文芳服务费无法

2014-11-23

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除