自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(100)
  • 收藏
  • 关注

转载 Spring AOP

1.Spring AOP的加载过程通过 @Aspect 注解配置切面,通过 @EnableAspectJAutoProxy 注解开启AOP配置,引入AspectJAutoProxyRegistrar类,最终会注册一个AnnotationAwareAspectJAutoProxyCreator类因为AnnotationAwareAspectJAutoProxyCreator继承自BeanPostProcessor生命周期:postProcessBeforeInstantiation@Overr

2021-03-01 09:33:10 359

转载 Spring_Resource 解析bean过程

Resources将不同来源的资源抽象成URL,通过注册不同的handler来处理不同来源的资源的读取逻辑。Resouces接口抽象了所有Spring内部使用到的底层资源。在resource加载了配置文件之后,将读取配置文件的工作交给了后续的XXXReader。例子XmlBeanFactory1.Resource 获取配置文件资源2.构造XmlBeanDefinitionReader3.获取inputStream并构造InputResource4.调用核心方法doLoadBeanDefin

2020-09-06 16:45:35 302

转载 Disruptor

Disruptor1.事件定义。2.事件的工厂。3.事件Handler。onEvent()4.生产者(发布)事件定义public class LongEvent { private long value; public long getValue() { return value; } public void setValue(long value) { this.value = value; } }

2020-08-28 18:26:34 194

转载 Spring Bean

什么是Bean Definition定义Bean的配置元信息接口。1.Bean的类名。2.Bean行为配置元素,如作用域,自动绑定的模式,生命周期回调等3.其他Bean引用,又可称作合作者(collaborators)或者依赖(dependencies)4.配置设置,比如Bean属性(Properties)BeanDefinition构建1.通过BeanDefinitionBuilder2.通过AbstractBeanDefinition以及派生类...

2020-07-24 00:17:53 184

转载 Spring_IOC

InversionOfControl Martin Fowler

2020-07-12 18:14:48 206

转载 StampedLock

StampedLock 读模板:final StampedLock sl = new StampedLock();// 乐观读 long stamp = sl.tryOptimisticRead(); // 读⼊⽅法局部变量 ...... // 校验 stamp if (!sl.validate(stamp)){ // 升级为悲观读锁 stamp = sl.readLock(); try { // 读⼊⽅法局部变量 ..... } finally

2020-06-09 15:36:32 124

转载 限流器:Semaphore,RateLimiter

Semaphore实现一个简单的限流器class ObjPool<T, R> { final List<T> pool; // 用信号量实现限流器 final Semaphore sem; // 构造函数 ObjPool(int size, T t){ pool = new Vector<T>(){}; for(int i=0; i<size; i++){ pool.add(t);

2020-06-09 14:20:07 514

转载 Java中并发常用工具类

来源于:https://blog.csdn.net/coderinchina/article/details/54914852CountDownLatchSemaphore(信号量)CountDownLatchcountDownLatch允许一个或多个线程等待其他线程完成操作。通过构造函数来确定线程数final CountDownLatch countDownLatch = new CountDownLatch(3); 通过.countDown()来使同步计数器减1countDownLa

2020-06-07 16:17:19 154

原创 Happens-Before规则

来源于:极客时间的Java并发编程实战Happens-Before 规则:前面一个操作的结果对后续操作是可见的。1.程序的顺序性规则这条规则是指在一个线程中,按照程序顺序,前面的操作 Happens-Before 于后续的任意 操作。2.volatile 变量规则这条规则是指对一个 volatile 变量的写操作, Happens-Before 于后续对这个 volatile 变量的读操作。(写操作对读操作可见)3.传递性这条规则是指如果 A Happens-Before B,且 B Hap

2020-06-05 16:39:55 287

转载 Effective Java

创建和销毁对象1.静态工厂方法与构造器的优势在于:1.它们有名称。2.不必在每次调用他们的时候都需要创建一个新对象。3.可以返回原返回类型的任何子类型对象。4.所返回的对象的类可以随着每次调用而发生变化,这取决于静态工厂方法的参数值。5.方法返回的对象所属的类,在编写包含该静态工厂方法的类时可以不存在。2.静态方法对于构造器的缺点:1.类如果不含有共有的或者受保护的构造器,就不能被子类化。2....

2020-05-06 17:27:14 194

原创 Head First

备注:

2020-03-30 11:43:52 83

原创 Maven

groupId的表示方式与Java包名的表示方式类似,通常与域名反向一一对应。artifactId定义实际项目中的一个Maven模块,好处是为了方便寻找实际构件。依赖关系:直接依赖的范围和第二直接依赖的范围决定了传递性依赖的范围。依赖调解会使用路径最近者优先以及第一声明者优先:如A->B->C->E(1.0);A->D->E(2.0)。这样A会解析E(2.0)。...

2019-12-06 14:24:20 113

转载 RocketMQ

原文:https://www.jianshu.com/p/28fb017be7a7https://www.cnblogs.com/cjsblog/p/9439331.htmlElasticsearchElasticsearch是一种分布式的搜索引擎架构,可以很简单地扩展到上百个服务节点,并支持PB级别的数据查询,使系统具备高可用和高并发性。cluster 集群cluster就是一个及以...

2019-11-14 20:55:17 207

转载 VO,DTO,DO,PO的概念

VOVO(View Object):视图层,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。DTODTO(Data Transfer Object):数据传输对象,这个概念来源于J2EE的设计模式,原来的目的时为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式条用的次数,从而提高分布式调用的性能和降低网络负载,但在这里,我泛指用于展示层与服务层之间的数据传输对象。D...

2019-11-06 14:10:23 117

转载 git常用命令

$ cd d:$ cd data/my_branch/cia_icbc_server/ (查看当前业务分支)$ git checkout rel_test_112345$ git pull (更新当前业务分支)$ git status (查看当前业务分支状态)$ git checkout develop (切换到develop)$ git pull (更新develop分支)$...

2019-11-05 19:41:31 98

转载 吞吐量(TPS)、QPS、并发数、响应时间(RT)概念

1. 响应时间(RT)响应时间是指系统对请求作出响应的时间。直观上看,这个指标与人对软件性能的主观感受是非常一致的,因为它完整地记录了整个计算机系统处理请求的时间。由于一个系统通常会提供许多功能,而不同功能的处理逻辑也千差万别,因而不同功能的响应时间也不尽相同,甚至同一功能在不同输入数据的情况下响应时间也不相同。所以,在讨论一个系统的响应时间时,人们通常是指该系统所有功能的平均时间或者所有功能的...

2019-11-05 16:54:52 673

转载 JavaEE知识点总结

Web.xml中的 load-on-startup 元素标记容器是否应该在web应用程序启动的时候就加载这个servlet,(实例化并调用其init()方法)。Servlet的生命周期:加载和实例化  Servlet容器负责加载和实例化Servlet。当Servlet容器启动时,或者在容器检测到需要这个Servlet来响应第一个请求时,创建Servlet实例。当Servlet容器启动后,它必...

2019-08-05 20:36:42 846

翻译 内存排查

原文:https://time.geekbang.org/column/article/108582Linuxtop命令实时显示正在执行进程的 CPU 使用率、内存使用率以及系统负载等信息。其中上半部分显示的是系统的统计信息,下半部分显示的是进程的使用率统计信息。top -Hp pid查看具体线程使用系统资源情况vmstat多用来观测进程的上下文切换r:等待运行的进程数;b:...

2019-07-18 19:52:46 210

转载 LDAP&4A 认证

原文:https://blog.csdn.net/jsut_rick/article/details/78207408使用LDAP认证LDAP目录服务LDAP:轻量级目录访问协议(Lightweight Directory Access Protocol)Ø 由服务器来集中存储并向客户端提供的消息,存储方式类似于DNS分层结构Ø 提供的信息包括:用户名、密码、通信录、主机名映射记录……...

2019-07-09 16:06:37 2563

转载 附件上传

Java文件上传和下载:原文:https://www.cnblogs.com/longqingyang/p/5579889.html附件上传:前端页面<%@ page language="java" pageEncoding="UTF-8"%><!DOCTYPE HTML><html> <head> <title>...

2019-07-08 17:21:01 928

翻译 HTTP

HTTPS是HTTP的安全版本,有加密的.HTTP:(超文本传输协议)HTTP协议通信的网络应用只能由客户端主动发起,服务端被动响应。HTTP是基于TCP/IP协议的应用层协议,不涉及数据包的传输,主要是规定了客户端和服务器之间的通信格式。HTTP各版本上的区别HTTP 0.9:只允许客户端发送一种GET请求,并且不支持请求头,因为没有协议头的原因,HTTP 0.9只支持纯文本一种内容...

2019-06-23 21:39:40 438

翻译 多线程性能调优

原文:https://time.geekbang.org/column/article/101244#previewimgLock 同步锁是基于 Java 实现的。Synchronized 是基于底层操作系统的Mutex Lock 实现的,每次获取和释放锁操作都会带来用户态和内核态的切换,从而增加系统性能开销。Synchronized 在修饰同步代码块时,是由 monitorenter 和m...

2019-06-15 15:36:16 5133 1

翻译 Springmvc笔记

Springmvc:架构流程1、 用户发送请求至前端控制器DispatcherServlet2、 DispatcherServlet收到请求调用HandlerMapping处理器映射器。3、 处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。4、 DispatcherServlet通过HandlerAd...

2019-06-04 14:42:52 116

翻译 图解TCP/IP

一. 网络基础知识1.2.2 分时系统多个终端与同一个计算机连接,允许多个用户同时使用一台计算机的系统。1.3.5 分组交换协议分组交换是指将大数据分割为一个个叫做包的较小单位进行传输的方法。计算机通信会在每一个分组中附加上源主机地址和目标主机地址送给通信线路。这些发送端地址,接收端地址以及分组序号写入的部分称为“报文首部”。1.5.1 协议的分层同一层之间的交互所遵循的约定叫做“协...

2019-06-03 22:14:51 110

转载 MySQL

存储引擎架构:这种架构的设计将查询处理及其他系统任务和数据的存储/提取相分离。1.1 MySQL逻辑架构第一层:不是MySql所独有,比如连接处理,授权认证,安全等。第二层:查询解析,分析,优化,缓存以及所有的内置函数,所有的跨存储引擎的功能都在这一层实现:存储过程,触发器,视图等。第三层:存储引擎,存储引擎负责MySql中数据的存储和提取。1.1.1连接管理与安全性每个客户端连接都...

2019-06-03 00:17:56 338

翻译 访问者模式

Visitor行为模式它分离对象的数据和行为,使用Visitor模式,可以不修改已有类的前提下,增加操作。根据软件设计的开闭原则(对修改关闭,对扩展开放)角色和职责:1.访问者角色(Visitor):为该对象结构中具体元素角色声明一个访问操作接口。该操作接口的名字和参数标识了发生访问请求给具体访问者的具体元素角色。这样访问者就可以通过该元素角色的特定接口直接访问它。2.具体访问者角色(...

2019-06-02 14:47:12 97

翻译 命令模式

Command行为设计模式通过被称为Command的类封装了对目标对象的调用行为以及调用参数。应用场景:在面向对象的程序设计中,一个对象调另一个对象,一般情况下的调用过程是:创建目标对象实例;设置调用参数;调用目标对象的方法。但在有些情况下有必要使用一个专门的类对这种调用过程加以封装,我们把这种专门的类称作command类。整个调用过程比较繁杂,或者存在多处这种调用。这时,使用Comma...

2019-06-02 12:18:50 96

翻译 状态模式

State行为设计模式通过改变对象的内部状态而改变对象的行为,这个对象表现得就好像修改了它的类一样。状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂时,把状态的判断逻辑转译到表现不同状态的一系列类当中,可以把复杂的判断逻辑简化。//Contextpublic class Person { private int hour; private State st...

2019-06-02 11:26:17 100

翻译 备忘录模式

Memento行为模式它的作用是保存对象的内部状态,并在需要的时候(undo/rollback)恢复对象以前的状态。应用场景:如果一个对象需要保存状态可通过undo或rollback等操作恢复到以前的状态时,可以使用Memento模式。1.一个类需要保存他的对象的状态(相当于Originator角色)2.设计一个类,该类只是用来保存上述对象的状态(相当于Meneto角色)(和Origi...

2019-06-02 10:46:08 96

翻译 模板方法模式

Template Method行为模式它把具有特定步骤算法中的某些必要的处理委让给抽象方法,通过子类继承对抽象方法的不同实现改变整个算法的行为。应用场景:1.具有统一的操作步骤或操作过程2.具有不同的操作细节3.存在多个具有同样操作步骤的应用场景,但某些具体的操作细节却各不相同角色和职责:AbstractClass:抽象类的父类ConcreteClass:具体的实现子类temp...

2019-06-02 10:00:19 98

翻译 迭代模式

Iterator行为模式它把对容器中包含的内部对象的访问委让给外部类,使用Iterator(遍历)按顺序进行遍历访问的设计模式。角色和职责:Iterator(迭代器接口):该接口必须实现迭代功能的最小定义方法集,比如提供hashNext(),next()方法ConcreteIterator(迭代器实现类):迭代器接口Iterator的实现类。可以根据具体情况加以实现,需要得到内部信息,所...

2019-06-01 15:59:02 119

翻译 职责链模式

Chain of Responsibility (CoR)行为模式该模式构造一系列分别担当不同的职责的类的对象来共同完成一个任务,这些类的对象之间像链条一样紧密相连。要实现Chain of Responsibility 模式,需要满足以下条件:1.对象链的组织。需要将某任务的所有职责执行对象以链的形式加以组织。2.消息或请求的传递。将消息或请求沿着对象链传递,以让处于对象链中的对象得到处...

2019-06-01 15:00:34 117

翻译 JMeter

JMeter 不仅可以实现简单的并发性能测试,还可以实现复杂的宏基准测试。录制业务脚本1.使用 Jmeter 自身的代理录制。2.使用 Badboy 这款软件录制。使用 Badboy 这款软件录制。首先我们安装一个录制测试脚本的插件,叫做 BlazeMeter 插件。...

2019-06-01 10:12:29 81

原创 字符串算法

/**循环左移字符串比如abcdef,左移2位cdefab*/public class Loop_Left_Shift_String {public static void main(String[] args) {Loop_Left_Shift_String l = new Loop_Left_Shift_String();System.out.println(l.L...

2019-05-31 20:31:12 107

转载 逆波兰表达式

原文:https://blog.csdn.net/linraise/article/details/20459751算法:中缀表达式转换成后缀表达式输入:中缀表达式串输出:后缀表达式串PROCESS BEGIN:1.从左往右扫描中缀表达式串s,对于每一个操作数或操作符,执行以下操作; 2.IF (扫描到的s[i]是操作数DATA)将s[i]添加到输出串中; ...

2019-05-31 16:57:59 188

翻译 中介者模式

Mediator软件设计模式,行为模式之一类之间的交互行为被统一放在Mediator的对象中,对象通过Mediator对象同其他对象交互,Mediator对象起着控制器的作用。角色和职责:mediator:中介者的抽象父类concreteMediator:具体的中介者类colleague:关联类的抽象父类concreteColleague:具体的关联类优点:1.将系统按功能分割成...

2019-05-31 15:16:19 96

翻译 解释器模式

Interprete行为模式之一它建立一个解释器,对于特定的计算机程序设计语言,它用来解释预先定义的文法(即简单的语法解释器构架)。角色和职责:Context:解释器上下文环境类。用来存储解释器的上下文环境,比如需要解释的文法等。AbstractExpression:解释器抽象类ConcreteExpression:解释器具体实现类。//Context/** * 上下文环境类...

2019-05-31 14:23:52 107

翻译 适配器模式

Adapter构造型模式通过Adapter模式可以改变已有类(或外部类)的接口形式。Adapter模式通过定义一个新的接口(对要实现的功能加以抽象),和一个实现该接口的Adapter(适配器)类来透明地调用外部组件。这样替代外部组件时,最多只要修改几个Adapter类就可以了。public class Current { public void user220V(){ ...

2019-05-31 00:01:43 95

翻译 桥接模式

Bridge构造型的设计模式Bridge模式基于类的最小设计原则,通过使用封装,聚合以及继承等行为来让不同的类承担不同的责任。他的主要特点是把抽象与行为实现分离开来,从而可以保持各部分的独立性以及应对他们的功能扩展。...

2019-05-30 21:41:25 102

翻译 组合模式

Composite构造型设计模式之一通过递归手段来构造树形得对象结构,并可以通过一个对象来访问整个对象树角色和职责:Component(树形结构得节点抽象)1.为所有的对象定义统一的接口(公共属性,行为等的定义)2.提供管理子节点对象的接口方法3.(可选)提供管理父节点对象的接口方法Leaf(树形结构的叶节点)Component的实现子类Composite(树形结构的枝节点)...

2019-05-30 00:12:02 114

空空如也

空空如也

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

TA关注的人

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