自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一颗贪婪的星

奋飞不辍

  • 博客(51)
  • 收藏
  • 关注

原创 【Java开发工具】Generator:Java代码生成工具

欢迎来到 Generator写这个代码生成器工具的想法源自2018年3月份,当时项目组刚完成一个Java Web项目的研发工作,在整个项目过程中耗费了不少的时间来构建SpringMVC的重复性代码和Mybatis的映射文件,同时我也越来越觉得这些重复且难度不大的工作不应当充斥于整个项目周期中,于是开始在网上搜寻Java代码生成器,但看了许多都不太满意于是决定自己写一个出来。最初的工具是带有...

2018-09-14 14:01:52 23151 14

转载 SpringBoot多模块项目mvn打包遇到的问题 - 存在依赖但却无法发现符号

转载自:【SpringBoot错误笔记】springboot多模块项目mvn打包遇到的问题 - 存在依赖但却无法发现符号这是一个什么问题呢?我来阐述一下,问题大致是这么一个情况:我有一个SpringCloud项目,每个微服务都是一个SpringBoot工程,其中有一个payment项目依赖了一个公共的模块common项目。payment项目和common项目都同属一个父工程的子module...

2019-04-04 16:30:15 1194 2

原创 SpringCloud 入门笔记(七)Config配置中心

目录1 概述2 构建Config Server2.1 创建Github配置仓库2.2 创建config-server项目2.3 测试访问配置数据3 构建Config Client3.1 添加依赖3.2 配置bootstrap.yml3.3 修改application.yml3.4 创建配置类3.5 测试配置数据拉取4 动态配置更新4.1 配置Ac...

2019-04-04 11:00:04 1040

原创 SpringCloud 入门笔记(六)Zuul服务网关

目录1 概述2 构建Zuul服务网关2.1 构建gateway项目2.2 路由配置示例3 测试1 概述Zuul是Netflix开源的微服务网关,SpringCloud进行了集成,能够非常方便地与Eureka、Ribbon等组件集成。本篇拟采用Zuul搭建一个简单的微服务网关。2 构建Zuul服务网关2.1 构建gateway项目因为我们要将gateway...

2019-04-03 21:40:23 425

原创 SpringCloud 入门笔记(五)Hystrix断路器

目录概述Hystrix配置添加回退处理检查回退原因1 概述微服务架构的系统中通常会包含很多个服务,服务间采用HTTP通信,当某个微服务不可用时,很容易导致级联故障,即雪崩效应,因此在服务间进行调用时,需要一定的容错机制,Hystrix就是一个实现了调用超时和断路器的容错组件。Feign中已经集成了Hystrix,本篇以user-ms为例,添加对role-ms调用的熔断处...

2019-04-03 16:52:45 206

原创 SpringCloud 入门笔记(四)Ribbon客户端负载均衡器

目录1 概述2 配置Ribbon2.1 配置文件2.2 全局配置类2.3 服务级配置类4 测试1 概述在微服务架构的系统中,为防止单点故障,一个微服务通常会有多个实例,当服务间进行调用时,需要在多个服务实例间进行负载均衡,Ribbon即为一个常用的客户端负载均衡组件。Ribbon提供了多种负载均衡规则,如:RoundRobinRule:轮询规则,默认规则...

2019-04-03 15:59:57 307

原创 SpringCloud 入门笔记(三)Feign声明式HTTP调用

目录1 概述2 配置Feign组件3 测试1 概述在SpringCloud中,每个微服务即是服务提供者也是服务消费者,各个微服务之间经常需要互相调用。通常,服务会向外部提供一些REST接口,供外部服务调用,Feign就是提供服务间声明式HTTP调用的组件。通过Feign,我们可以使用SpringMVC注解创建访问其他服务接口的HTTP客户端。本篇以前面构建的 user-ms...

2019-04-03 13:59:51 364

原创 SpringCloud 入门笔记(二)Eureka服务注册中心

目录1 概述2 Eureka Server2.1 构建Server项目2.2 添加Spring Security认证3 Eureka Client3.1 构建Client项目4 测试5 Eureka Server 集群1 概述Eureka是一个服务注册中心,分为Eureka Server和Eureka Client,Server和Client均是Spring...

2019-04-03 13:25:37 281

原创 SpringCloud 入门笔记(一)概述

正如Spring官网 中所表示的,SpringCloud为我们集成了许多开箱即用的优质服务框架,并依托SpringBoot的便利性,为开发者提供了快速构建微服务的环境。SpringCloud包括的服务框架主要有:Spring Cloud Eureka:服务注册中心 Spring Cloud Ribbon:客户端负载均衡器 Spring Cloud Feign:声明式REST调用 ...

2019-04-03 13:24:54 260

转载 JDK1.8 HashMap知识点详解

转载于: Java源码分析:关于 HashMap 1.8 的重大更新

2019-03-28 15:33:17 188

原创 Fabric交易的共识流程

目录一、概述二、共识流程(一)提议阶段(二)打包阶段(三)验证阶段三、小结一、概述Fabric中提供了Orderer排序节点,作为区块链网络的一种共识机制,提供对交易进行排序的服务。目前,Fabric已发布的版本中提供了一种基于崩溃容错(Crash Fault-Tolerant, CFT)等排序机制。这种机制是通过Kafka实现的,后续版本中会提供基于Raft共识的...

2019-03-26 23:32:54 3615

原创 《MySql技术内幕 InnoDb存储引擎》学习笔记【八 事务】

目录八 事务(一)事务的分类1 扁平事务2 带有保存点扁平事务3 链事务4 嵌套事务5 分布式事务(二)事务的实现1 redo2 undo3 purge4 group commit(三)事务的隔离级别(四)分布式事务1 外部事务2 内部事务参考资料八 事务事务由一个或多个简单的SQL语句组成,在一个事务中的操作,要么全部成...

2019-02-21 17:28:51 177

原创 《MySql技术内幕 InnoDb存储引擎》学习笔记【七 锁】

目录七 锁(一)Lock与Latch(二)InnoDB中的锁1 锁的类型2 一致性非锁定读3 一致性锁定读4 自增长和锁5 外键和锁(三)锁的算法(四)锁问题1 脏读2 不可重复读3 幻读4 丢失更新(五)阻塞(六)死锁七 锁锁是数据库系统区别于文件系统的一个关键特性,用于管理对共享资源(不仅包含行记录,还包含缓冲池中的LRU...

2019-02-21 17:28:39 244

原创 《MySql技术内幕 InnoDb存储引擎》学习笔记【六 索引和算法】

目录六 索引和算法(一)概述(二)B+树索引1 聚集索引2 非聚集索引3 B+树索引的分裂4 B+树索引的管理(三)B+树索引的使用1 联合索引2 覆盖索引3 优化器选择不使用索引的情况4 索引提示5 Multi-Range Read优化6 Index Condition Pushdown优化(四)哈希索引(五)全文索引1 概述...

2019-02-21 17:28:22 274

原创 《MySql技术内幕 InnoDb存储引擎》学习笔记【五 表】

目录五 表(一)索引组织表(二)逻辑存储结构1 表空间2 段3 区4 页5 行五 表(一)索引组织表在InnoDB中,表都是根据主键顺序组织存放的,这种存储方式的表称为索引组织表。每个InnoDB的表都有主键,如果创建表时没有显式的定义主键,则InnoDB会自动为表选择或创建主键:判断表中是否有非空的唯一索引,若有则该列为主键,若有多个则第一个定义的...

2019-02-21 17:28:04 205

原创 《MySql技术内幕 InnoDb存储引擎》学习笔记【四 InnoDB存储引擎】

目录四 InnoDB存储引擎(一)InnoDB体系架构1 后台线程2 内存(二)CheckPoint技术(三)Master Thread工作方式1 1.0.x之前版本2 1.2.x之前版本3 1.2.x版本(三)InnoDB关键特性1 插入缓冲2 两次写3 自适应哈希索引4 异步IO5 刷新邻接页四 InnoDB存储引擎InnoD...

2019-02-21 17:27:52 431

原创 《MySql技术内幕 InnoDb存储引擎》学习笔记【三 存储引擎】

目录三 存储引擎(一)InnoDB(二)MyISAM存储引擎(三)NDB存储引擎(四)Memory存储引擎(五)Archive存储引擎(六)Federated存储引擎(七)Maria存储引擎三 存储引擎(一)InnoDBInnoDB存储引擎支持事务、行锁、外键、非锁定读、从MySql5.5.8版本开始,InnoDb是默认的存储引擎。InnoDB通过使...

2019-02-21 17:27:34 185

原创 《MySql技术内幕 InnoDb存储引擎》学习笔记【二 MySql体系结构】

目录二 MySql体系结构(一)连接层(二)SQL层(三)存储引擎层(四)物理文件层二 MySql体系结构从上图可以发现,MySql主要由连接层、SQL层、存储引擎层和物理层组成。(一)连接层1. 连接器比如我们常用的JDBC和ODBC等2. 连接池提供数据库连接池,用于身份认证、线程复用、连接限制等机制。(二)SQL层1. 管理服务和工...

2019-02-21 17:26:47 209

原创 《MySql技术内幕 InnoDb存储引擎》学习笔记【一 数据库和数据库实例】

目录一 数据库和数据库实例(一)数据库(二)数据库实例参考资料一 数据库和数据库实例(一)数据库数据库是物理操作系统文件或其他形式文件类型的集合。在MySql数据库中,数据库文件可以是frm、MYD、MYI、ibd等格式的文件,可能存放于物理磁盘上,也可能存放于内存中。(二)数据库实例数据库实例是应用程序,位于用户与操作系统之间的数据库管理软件。用户对数据库数据...

2019-01-22 15:57:41 396

原创 Maven指令打包SpringBoot项目提示没有主清单文件

项目打包为Jar后,通过java -jar xxxxx.jar运行时提示xxxxx.jar中没有主清单属性,如下:打开jar包,META-INF目录下的MANIFEST.MF,内容如下:Manifest-Version: 1.0Archiver-Version: Plexus ArchiverBuilt-By: greedystarCreated-By: Apache Mave...

2019-01-08 13:12:17 5165 2

原创 SpringBoot学习笔记【四】多数据源配置

目录一、配置二、测试在最近的工作中,项目要求在一个工程中访问多个数据源的数据,这部分的配置比较简单,简单记录一下具体的配置。一、配置首先,在application配置文件中添加多个数据数据源,如下:server: port: 8088spring: datasource: sys: driver-class-name: com.mysql.j...

2018-12-24 11:33:49 268

原创 Java并发编程学习笔记(三)锁

目录一、分类(一)内部锁 / 显式锁(二)公平锁 / 非公平锁(三)可重入锁 / 不可重入锁(四)互斥锁 / 读写锁(五)乐观锁 / 悲观锁(六)分拆锁 / 分离锁(七)偏向锁 / 轻量级锁 / 重量级锁(八)自旋锁二、内部锁三、显示锁四、总结Java中的锁大家一定都不陌生,在许多的书籍和文章的并发章节都会提到各种关于锁的名词,下面一起来看看Ja...

2018-12-20 11:36:45 219

原创 Java并发编程学习笔记(二)活跃度问题

目录一、死锁(一)定义(二)锁顺序死锁(三)协作对象间的死锁(四)资源死锁二、避免和诊断死锁(一)使用显式锁(二)通过线程转储分析死锁三、其他活跃度问题(一)饥饿(二)弱响应性(三)活锁参考资料在并发编程中,我们经常通过锁来保证线程安全,但使用锁也可能会带来一系列其他的问题,如死锁等问题。我们知道Java虚拟机无法从死锁中恢复,因此了解死锁的...

2018-12-19 14:52:09 302

原创 Java并发编程学习笔记(一)基础知识

目录一、基本概念(一)并发和并行(二)进程和线程(三)线程状态转换二、线程的使用(一)继承Thread类(二)实现Runnable接口(三)实现Callable接口三、线程池(一)FixedThreadPool(二)CachedThreadPool(三)SingleThreadPool(四)ScheduledThreadPool(五)Work...

2018-12-14 09:54:52 246

原创 推荐系统:矩阵分解(Matrix factorization)

目录一、问题描述二、算法概述(一)BasicSVD(二)FunkSVD(三)Baseline estimates & Matrix factorization(四)Asymmetric-SVD(五)SVD++三、总结一、问题描述给定用户 - 物品评分矩阵(下文简称评分矩阵) 如下表所示:u/i 1 2 3 4 ......

2018-11-26 11:01:44 12060 2

原创 分布式事务学习 - 相关理论和经典解决方案

目录一、前言二、相关概念(一)ACID特性(二)一致性(三)CAP定理(四)BASE理论三、解决方案(一)两阶段提交(Two Phase Commitment Protocol,2PC)(二)补偿事务(Try Confirm Cancel,TCC)(三)本地消息表(四)消息队列事务(五)Sagas事务四、总结五、参考资料一、前言互联网...

2018-10-17 14:37:31 993

原创 Spring源码学习【八】SpringMVC之HandlerMapping

目录一、前言二、源码学习(一) 注册Bean(二) 初始化策略(三) 处理客户请求一、前言在前一篇中我们分析了DispatcherServlet的实现,在处理客户请求的doDispatch方法中提到了HandlerMapping,这是SpringMVC中请求控制的重要组件,用于将URL映射到Controller中。首先,回忆一下平时使用的SpringMVC配置文件,...

2018-09-27 17:09:44 286

原创 Spring源码学习【八】SpringMVC之DispatcherServlet

目录一、前言二、源码学习(一)初始化阶段 -> init()(二)响应客户请求 -> service()(二)销毁阶段 -> destroy()三、总结一、前言Web环境是Spring框架的重要应用场景,而SpringMVC又是Web开发中一个常用的框架,因此我们有必要学习一下SpringMVC的实现原理。回到Web项目的配置文件web.xml...

2018-09-27 11:59:07 428

原创 Spring源码学习【七】Web环境中启动和关闭IOC容器

一、前言前面的几章中学习了Spring IOC容器和AOP的实现,对这两个核心功能有了一定了解后,让我们一起学习一下IOC容器在常用的Web环境中是如何使用的,这也是Spring框架在Web环境中的重要应用场景。回忆一下在Web项目中配置Spring的过程,首先,我们需要在web.xml中进行如下配置:<listener> <listener-class&g...

2018-09-18 21:46:43 1069 2

原创 Spring源码学习【六】AOP原理解析(二)拦截器链

目录一、前言二、源码学习一、前言通过上一篇 Spring源码学习【六】AOP原理解析(一)代理对象的生成 的学习,我们知道了Spring是通过后置处理器来生成代理对象的,且获取到代理对象后会阻止原Bean的默认实例化行为,从而将代理对象提供给用户使用,并通过代理对象实现对目标对象的增强,有了这些知识储备,我们继续以JdkDynamicAopProxy为例,学习一下代理对象是如何对目...

2018-08-27 15:47:28 1398 2

原创 Spring源码学习【六】AOP原理解析(一)代理对象的生成

目录一、前言二、源码分析三、特别说明一、前言AOP(Aspect Oriented Programming 面向切面编程)是Spring框架的核心功能之一,关于AOP中一些概念的理解可以参考SpringAOP概念及其使用,下面以一个简单的例子作为Spring AOP源码学习的起点。首先,定义一个切面类CustomAspect,如下所示:public class C...

2018-08-21 16:41:48 1027

原创 Spring源码学习【五】填坑篇之PropertyValue解析

经过上一篇文章 Spring源码学习【四】依赖注入过程 对Spring依赖注入过程的分析,我们知道了在注入Property时会创建一个深拷贝副本,将这个副本持有的Property注入到Bean中,在创建的过程中会使用BeanDefinitionValueResolver解析PropertyValue,代码如下:BeanDefinitionValueResolver valueResolver...

2018-08-20 16:03:38 4530

原创 Spring源码学习【四】依赖注入过程

目录一、总览二、源码分析(一)getBean触发依赖注入(1)getBean(2)createBean(3)createBeanInstance(4)populateBean(二)Bean的预实例化一、总览通过前面的分析,我们知道了IOC容器在初始化过程中建立了BeanDefinition的数据结构,接下来就需要进行依赖注入,处理Bean之间的依赖关系。...

2018-08-20 15:24:41 5316 2

原创 Spring源码学习【三】填坑篇之BeanDefinition的解析

在  Spring源码学习【二】IOC容器的初始化(二)BeanDefinition载入 中,我们分析了BeanDefinition的载入过程,同时也留下了这样一句注释:// TODO:待深入学习AbstractBeanDefinition beanDefinition = parseBeanDefinitionElement(ele, beanName, con-tainingBean)...

2018-08-20 15:22:45 3499

原创 SpringBoot学习笔记【三】整合 Security + JWT + 异常处理

目录一、添加依赖二、配置(一)JWT(二)Security(三)异常处理三、总结一、添加依赖Spring Security是后台开发中经常使用的身份认证和访问权限控制框架,集成起来十分简单,对Restful接口的支持也比较完备,至于更多的介绍,可以参考Spring Security 参考手册,在pom.xml中添加依赖如下:<dependency&gt...

2018-08-06 16:41:03 11285 1

原创 Spring源码学习【二】IOC容器的初始化(三)BeanDefinition注册

目录一、总览二、源码分析一、总览经过以上的分析,我们知道Document中BeanDefinition的解析是在DefaultBeanDefinitionDocumentReader中进行的,让我们回到DefaultBeanDefinitionDocumentReader的processBeanDefinition方法中,继续分析BeanDefinition解析后的注册过程。在pr...

2018-07-26 14:22:32 937

原创 Spring源码学习【二】IOC容器的初始化(二)BeanDefinition载入

目录一、总览二、源码分析(一)获取Document(二)解析Document一、总览经过前一篇(Spring源码学习【二】IOC容器的初始化(一)Resource定位)的分析,我们对IOC容器的初始化过程已经有了一定的了解。IOC的初始化由refresh()方法启动,最终对Resource的载入是由XmlBeanDefinitionReader处理的。参考上一节中6.loa...

2018-07-25 16:30:05 1186 1

原创 Spring源码学习【二】IOC容器的初始化(一)Resource定位

目录一、总览二、源码分析1. refresh2. obtainFreshBeanFactory3. refreshBeanFactory4-5. loadBeanDefinitions6. loadBeanDefinitions7. getResources8. getResource一、总览在使用IOC容器之前,需要定义一个Resource来定位容器B...

2018-07-24 16:14:50 1094

原创 Spring源码学习【一】初识IOC容器

目录一、IOC和DI二、Spring的IOC容器设计(一)BeanFactory系列容器接口(二)ApplicationContext系列容器接口一、IOC和DIIOC(Inversion Of Control):控制反转,是Spring的核心。所谓控制反转,就是将对象的创建和管理交由Spring容器控制,这是一种重要的面向对象设计思想,能够帮助我们设计出低耦合的程序。...

2018-07-18 10:23:47 885

原创 SpringBoot学习笔记【二】Druid 监控记录持久化 + 数据库密码加密

目录一、监控记录持久化二、数据库密码加密上一篇中我们构建了SpringBoot种子项目,整合了Mybatis、Druid、Swagger2【链接:SpringBoot学习笔记【一】整合 Mybatis + Druid + Swagger2】,过程中我们发现以下两个问题:1.application.yml配置文件中的数据库用户密码是明文的,直接将密码以明文的方式写在配置文件中显然是...

2018-07-15 20:19:17 7551 3

空空如也

空空如也

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

TA关注的人

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