- 博客(59)
- 资源 (23)
- 收藏
- 关注

原创 springboot dubbo nacos sentinel 快速集成
一 场景 我们以用户服务为例来对 springboot dubbo nacos sentinel 进行整合,我们现在有一个根据用户ID获取用户详情的接口,需要服务化给其他业务使用,dubbo 作为RPC访问框架,nacos做服务注册中心,sentinel 做限流 来保护用户服务。新建了一个工程,工程目录如下:user-api :用户服务的API 包括接口定义,请求参数,返回...
2019-08-06 10:19:37
5377
2
原创 Spring Boot 2.X源码导入IDEA
一. 依赖工具Maven ------Apache Maven 3.5.4 Git ------GIT 2.20.1 JDK8+ ------JDK8 IntelliJ IDEA -----2019.1 macOS Catalina ----10.14.6二. 源码拉取从官方仓库https://github.com/spring-projects/spring-bootFor...
2019-12-19 11:21:04
1144
原创 nacos快速安装
一 什么是 Nacos服务注册中心和配置中心。官方给出的定义:https://nacos.io/zh-cn/docs/what-is-nacos.html二 使用下载和启动使用有两种方式 1.自己下载源码编译 2.下载编译好的压缩包 我比较懒选择了第二种方式。最新稳定版本 下载地址:https://github.com/alibaba/nacos/releases我下载的版本...
2019-08-05 19:18:46
19888
12
原创 Mac 升级后idea执行git命令报错xcrun: error: invalid active developer path的解决办法
报错xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun查询通用的做法是在terminal 执行:xcode-select --install由...
2019-02-12 10:46:09
1295
1
原创 IDEA 代码生成插件 CodeMaker
    Java 开发过程中经常会遇到编写重复代码的事情,例如说:编写领域类和持久类的时候,大部分时候它们的变量名称,类型是一样的,在编写领域类的时候常常要重复写类似的代码。类似的问题太多……这里介绍一个 IDEA 的代码生成插件,通过Velocity支持自定义代码模板来生成代码。项目地址:CodeMaker下载地址:CodeMaker V1.2主要功能支持增加自定义...
2018-11-12 21:17:02
10043
3
原创 SOA架构和微服务架构以及领域驱动设计
一,主流架构模型SOA架构和微服务架构1.1 SOA架构 SOA 全称(Service Oriented Architecture),中文意思为“面向服务的架构”,他是一种设计方法,其中包含多个服务,服务之间通过相互依赖最终提供一系列的功能。一个服务通常以独立的形式存在与操作系统进程中。各个服务之间通过网络调用。跟 SOA 相提并论的还有一个 ESB(企业服务总线),简单来说 ...
2018-07-05 08:53:28
2461
原创 分布式架构的漫谈
一,计算机发展史概述 1946 年情人节(2.14) , 世界上第一台电子数字计算机诞生在美国宾夕法尼亚大学大学,它的名字是:ENIAC; 这台计算机占地170平米、重达30吨,每秒可进行5000次加法运算。第一台电子计算机诞生以后,意味着一个日新月异的IT时代的到来。一方面单台计算机的性能每年都在提升:从最早的 8位 CPU 到现在的64位CPU;从早期的MB级内存到现在的GB级别内...
2018-06-21 19:23:43
3744
3
原创 Spring Boot 项目在Centos7.4 上的部署脚本
文件名称:springboot.sh类容如下:#!/bin/bash#这里可替换为你自己的执行程序,其他代码无需更改APP_NAME=hiphop-1.6.9.jar#使用说明,用来提示输入参数usage() { echo "Usage: sh 执行脚本.sh [start|stop|restart|status]" exit 1}#检查程序是否在运行is_e...
2018-06-05 13:46:43
2269
原创 阿里云Centos7.4 安装JDK1.8和Mysql5.7
一, 安装JDKyumlist java-1.8* yum install java-1.8.0-openjdk.x86_64 -y二, 安装mysql5.71.配置YUM源# 下载mysql源安装包wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm# 安装mysql源yum localinstall...
2018-06-05 12:46:50
809
原创 Spring5源码分析(三) IOC容器的依赖注入— 基于XML的依赖注入(三)
七、BeanDefinitionValueResolver解析属性值 当容器在对属性进行依赖注入时,如果发现属性值需要进行类型转换,如属性值是容器中另一个Bean实例对象的引用,则容器首先需要根据属性值解析出所引用的对象,然后才能将该引用对象注入到目标实例对象的属性上去,对属性进行解析的由 resolveValueIfNecessary 方法实现,其源码如下://解析属性值,对注入类...
2018-06-03 22:30:09
547
原创 Spring5源码分析(三) IOC容器的依赖注入— 基于XML的依赖注入(二)
四、createBeanInstance 方法创建Bean的java 实例对象 在createBeanInstance方法中,根据指定的初始化策略,使用静态工厂、工厂方法或者容器的自动装配特性生成java实例对象,创建对象的源码如下://创建Bean的实例对象protected BeanWrapper createBeanInstance(String beanName, Root...
2018-06-01 17:10:09
487
原创 Spring5源码分析(三) IOC容器的依赖注入—基于XML的依赖注入(一)
Spring中IOC容器的依赖注入主要有两种方式,一种是基于XML的依赖注入,一种是基于Annotation的依赖注入。接下来将对这两种依赖注入的方式进行分析,依赖注入的代码也比较复杂,所以还是分成几篇进行讲解。一、依赖注入发生的时间 当 Spring IOC容器完成了Bean定义资源的定位、载入和解析注册以后,IOC 容器中已经管理类Bean定义的相关数据,但是此时IOC容...
2018-05-30 23:39:42
629
原创 Spring5源码分析(二) IOC 容器的初始化(五)
此篇文章为Spring5源码分析——IOC容器的初始化的最后一篇,这一篇主要是对IOC容器的初始化进行总结。一,IOC 容器的初始化总结通过上面的几篇文章我们完成了对FileSystemXmlApplicationContext IOC容器创建的分析,接下来总结一下IOC容器初始化的基本步骤。 1. 初始化的入口在容器实现中的 refresh()调用来完成。 2. 对 bea...
2018-05-29 19:49:04
799
原创 Spring5源码分析(二) IOC 容器的初始化(四)
承接上一篇文章继续分析FileSystemXmlApplicationContext IOC容器创建的流程。2.12 BeanDefinitionParserDelegate 解析元素BeanDefinitionParserDelegate 在解析调用 parsePropertyElements 方法解析元素中的属性子元素,解析源码如下://解析<Bean>元素...
2018-05-26 20:06:45
722
原创 Spring5源码分析(二) IOC 容器的初始化(三)
承接上一篇文章继续分析FileSystemXmlApplicationContextIOC容器创建的流程。2.10 DefaultBeanDefinitionDocumentReader对Bean定义的Document对象解析BeanDefinitionDocumentReader 接 口 通 过 registerBeanDefinitions 方 法调用其实现类DefaultBe...
2018-05-24 23:37:51
634
原创 Spring5源码分析(二) IOC 容器的初始化(二)
承接上一篇文章继续分析FileSystemXmlApplicationContextIOC容器创建的流程。2.5 AbstractBeanDefinitionReader读取Bean定义资源,在其抽象父类AbstractBeanDefinitionReader 中定义了载入过程。AbstractBeanDefinitionReader 的 loadBeanDefinitions ...
2018-05-23 23:58:21
753
原创 Spring5源码分析(二) IOC 容器的初始化(一)
一,概述 IOC 容器的初始化包括 BeanDefinition 的 Resource 定位、载入和注册这三个基本的过程。我们以 ApplicationContext 为例讲解来深入讲解,ApplicationContext系列容器也许是我们最熟悉的,因为 Web项目中使用的XmlWebApplicationContext就属于这个继承体系,还有 ClasspathXmlApplicati...
2018-05-22 16:35:55
1994
原创 Spring5源码分析(一) IOC和Spring 核心容器体系结构
1.什么是 IOC/DI? IOC(Inversion of Control)控制反转:所谓控制反转,就是把原先我们代码里面需要实现的对象创建、依赖的代码,反转给容器来帮忙实现。那么必然的我们需要创建一个容器,同时需要一种描述来让容器知道需要创建的对象与对象的关系。这个描述最具体表现就是我们可配置的文件。 DI(Dependency Injection)依赖注入:就是指对象是被动接受依...
2018-05-17 15:48:52
9552
2
原创 Spring @ModelAttribute 总结
问题写这边文章是因为最近在看了一个Issues ,@ModelAttribute注解接受postman传json参数接收不到值.其实我自己对@ModelAttribute 了解也不太深,于是就是研究一番!问题 @RequestMapping("/test") public String test(@ModelAttribute("user") User user2) {...
2018-05-11 17:24:47
1219
原创 Spring5 系统架构
一,系统架构 Spring 总共大约有 20 个模块,由 1300 多个不同的文件构成。而这些组件被分别整合在核心容器 (Core Container)、AOP(Aspect Oriented Programming)和设备支持(Instrmentation)、 数据访问及集成(Data Access/Integeration)、Web、报文发送(Messaging)、Test,6 个模...
2018-04-28 11:31:02
8688
4
原创 Spring5 概述
一,概述 Spring 是一个开源的轻量级 Java SE(Java 标准版本)/Java EE(Java 企业版本)开发应用框架, 其目的是用于简化企业级应用程序开发。应用程序是由一组相互协作的对象组成。而在传统应用程序开 发中,一个完整的应用是由一组相互协作的对象组成。所以开发一个应用除了要开发业务逻辑之外,最 多的是关注如何使这些对象协作来完成所需功能,而且要低...
2018-04-26 16:53:54
1120
原创 中介者模式(Mediator)
1. 定义 用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。2.结构Mediator:中介者定义一个接口用于与各同事(Colleague)对象通信。ConcreteMediator:具体中介者通过协调各同事对象实现协作行为,了解并维护它的各个同事。Colleague:抽象同事类。Conc...
2018-04-09 11:06:56
513
原创 MyBatis的架构设计和一次查询流程
一, 功能架构设计 功能架构讲解: 接口层 提供给外部使用的接口API,开发人员通过这些本地API来操纵数据库。接口层一接收到调用请求就会调用数据处理层来完成具体的数据处理。MyBatis和数据库的交互有两种方式: a.使用传统的MyBatis提供的API. b.使用Mapper接口.数据处理层 负责具体的SQL查找、SQL解析、SQL执行和执行结果映射处理等。它主要的...
2018-04-04 10:30:22
621
原创 mybatis 源码导入IDEA
1.下载mybatis源码下载地址:https://github.com/mybatis/mybatis-3 我下载的最新的 mybatis-3-mybatis-3.4.6,下载完后解压。打开pom.xml <parent> <groupId>org.mybatis</groupId> <artifactId>my...
2018-03-30 09:58:01
5804
1
原创 生成器模式(Builder)
1. 定义 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。2.结构 - Builder:生成器接口,定义创建一个Product对象所需要的各个部件的操作。 - ConcreteBuilder:具体的生成器实现,实现各个部件的创建,并负责组装Product对象的各个部件,同时还提供一个让用户获取组装完成后的产品对象的方法。 - Director...
2018-03-29 16:16:55
5405
原创 外观模式(Facade)
1. 定义 为子系统中的一组接口提供一个一致的界面,Facade 模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。2.外观模式的结构 - Facade:定义子系统的多个模块对外的高层接口,通常需要调用内部多个模块,从而把客户的请求代理给适当的子系统对象。 - 模块:接受Facade对象的委派,真正实现功能,各个模块之间可能有交互。 - Client:通...
2018-03-27 17:32:40
334
原创 MyBatis 快速入门和重点详解
1.定义 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。官网http...
2018-03-27 14:07:44
204210
16
原创 IDEA中使用MyBatis Generator
1.使用如下主要介绍在IDEA 中使用MyBatis Generator 更多想使用请参考官网: http://www.mybatis.org/generator/ 1. 新建一个Maven 项目在POM中添加 <build> <plugins> <plugin> <g...
2018-03-26 13:49:25
4738
原创 观察者模式(Observer)
1. 定义 定义对象间的一种一对多的依赖关系。当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。2. 结构Subject:目标对象,通常具有如下功能能。 a. 一个目标可以被多个观察者观察 b. 目标提供对观察者注册和退订的维护 c. 当目标对象的状态发生变化时通知所有注册的有效观察者。Observer:定义观察者的接口,提供目标通知时对相...
2018-03-23 17:42:09
287
原创 装饰模式(Decorator)
1. 定义 动态的给一个对象添加一些额外的职责。就增加功能来说,装饰模式比生成子类更为灵活。2. 结构 - Component:组件对象的接口,可以给这些对象动态添加职责。 - ConcreteComponent:具体的组件对象,实现组件对象接口,通常就是被装饰的原始对象,也就是可以给这个对象添加职责。 - Decorator:所有装饰器的抽象父类,需要定义一个与组件接口一...
2018-03-22 13:55:17
243
原创 Spring5.0源码导入IDEA(一)
1.下载Springspring3.x以后托管到github上,所以下载源码直接到github上去下载。 github地址:spring-framework 由于我编译的是最新的的版本 spring-framework-5.0.4.RELEASE 下载地址: https://codeload.github.com/spring-projects/spring-framework...
2018-03-22 00:05:27
11480
18
原创 适配器模式
1. 适配器模式的结构和说明 将一个类的接口转换成客户希望的另一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。2. 适配器模式的结构和说明类的适配器模式(采用继承实现) 对象适配器(采用对象组合方式实现) Client:客户端,调用自己需要领域的接口Target:定义客户端需要的跟特定领域有关的接口Adaptee:已经存在的接口,...
2018-03-20 17:41:26
243
原创 委派模式
1. 定义 不属于 23 种设计模式之一,是面向对象设计模式中常用的一种模式. 这种模式的原理为类B和类A是两个互相没有任何关系的类,B具有和A一模一样的方法和属性;并且调用B中的方法,属性就是调用A中同名的方法和属性。B好像就是一个受A授权委托的中介。第三方的代码不需要知道A的存在,也不需要和A发生直接的联系,通过B就可以直接使用A的功能,这样既能够使用到A的各种公能,又能够很好的...
2018-03-20 09:58:15
281
原创 模板方法模式
1. 定义 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。2. 模板方法模式的结构 - AbstractClass : 抽象类,用来定义算法骨架和原语操作,具体的子类通过重定义这些原语操作来实现一个算法的各个步骤。在这个类里,还可以提供算法中通用的实现。 - ConcreteClass:具体的...
2018-03-19 17:01:56
253
原创 策略模式
1. 定义 定义一系列算法,把他们一个个封装起来,并且使他们可以互相替换。本模式使得算法 可以独立于使用它的客户而变化。2. 策略模式的结构Strategy : 策略接口,用来约束一系列具体的策略算法。Context使用这个接口来调用具体的策略实现定义的算法ConcreteStrategy:具体的策略实现,也就是具体的算法实现。Context:上下文,负责和具...
2018-03-16 15:32:46
256
原创 代理模式
定义 为其他对象提供一种代理以控制对这个对象的访问。本质 控制对象访问实例 以歌星为例:歌星的合作过程 面谈,签合同,唱歌,收尾款 其实有些步骤不需要明星亲自去做 比如面谈,签合同,收尾款。明星只需要唱歌即可。其他交由经纪人去做!静态代理实现:Star 歌星/** * 歌星 * @author lijun * @since 2018-03-12 14:12 *...
2018-03-13 13:16:44
316
原创 原型模式
定义 原型模式就是从一个对象再创建另外一个可定制的对象,而且不需要知道任何创建的细节。本质 克隆生成对象实例 以下已用户的原型来做学习。所谓原型模式,就是java中的克隆技术,以某个对象为原型。复制出新的对象。显然新的对象具备原型对象的特点。效率高(避免了重新执行构造过程步骤)克隆类似于new,但和new不同。new创建新的对象属性采用的是默认值。克隆出来的对象的属性值完全和原型对象相同。并...
2018-03-11 22:22:22
248
原创 单例模式
定义 保证一个类仅有一个实例,并且提供一个访问它的全局访问点。本质 控制实例数量实例 我们在开发项目中经常用到读取配置文件 配置文件里面的配置多少公用的,整个项目都会使用,我们经常会把他做成一个工具类使用。如果不考虑单例模式的话实现如下:SystemConfigpublic class SystemConfig { /** * 类型 */ private Str...
2018-03-09 10:41:47
326
原创 工厂模式
目标主要是Car为例来学习工厂模式主要是自己学习的一个记录 以前设计模式也仔细研究过没有进行整理,虽然也放在github上 已经是很久之前的事情了,这次刚好跟着课程,重新学习重新整理。简单工厂模式定义 提供一个创建对象实例的功能,而无须关心其具体实现。被创建实例的类型可以是接口,抽象类,也可以是具体的类。本质 选择实现实例下面以汽车car)为例:public interface Car { ...
2018-03-08 12:16:41
342
原创 服务器负载过高问题分析
问题现象:1,top命令查询服务器负载达到2.0-5之间,tomcat的cpu使用率达到104%问题分析过程:1),磁盘使用率未超出正常范围2),内存使用率未超出正常范围还有空闲3),服务器流量未现明显峰值4),jvm内存状态未现异常非GC原因综合初步预估是tomcat有线程一直在运行占用cpu资源 问
2017-06-22 09:11:40
23790
1
Effective Java, Third Edition - Joshua Bloch.pdf
2018-08-22
架构即未来+现代企业可扩展的Web架构流程和组织+原书第2版
2018-04-02
微服务设计中文版(END)
2018-01-26
spring源码缺失jar包
2017-06-11
SpringMVC +Hibernate JPA+Spring-data-jpa实例
2015-07-29
spring-objenesis-repack-2.1.jar,spring-cglib-repack-3.1.jar
2015-03-30
流式计算Storm
2012-03-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人