自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(62)
  • 资源 (1)
  • 收藏
  • 关注

原创 mybatis拦截器

mybatis拦截器设置一个mybatis 拦截器@Intercepts({@Signature(type = StatementHandler.class, method = "query", args = {Statement.class, ResultHandler.class})})public class MYInsertPlugin implements Interceptor { @Override public Object intercept(Invocation i

2021-12-04 14:19:22 1149

原创 三级缓存解决循环依赖

2021-03-05 15:27:17 116

原创 centos7搭建gitlab服务器

搭建地址

2021-03-02 16:34:16 118

原创 spring注解版构造函数

spring注解版构造函数的流程解析public AnnotationConfigApplicationContext(Class<?>... componentClasses) { this(); register(componentClasses); refresh(); }今天要讲的就是this这个方法一。this构造函数解析public AnnotationConfigApplicationContext() { //TODO 每一个类的构造函数都会调用父类的

2021-02-20 10:51:50 1743

原创 spring容器流程相关图片

2021-01-28 17:54:57 67

原创 spring注解版register方法

spring注解版构造函数中register方法1.第一步public AnnotationConfigApplicationContext(Class<?>... componentClasses) { this(); register(componentClasses);// 《==== 1. refresh(); }2.第二步@Override public void register(Class<?>... componentClasses) {

2021-01-27 09:04:14 909

原创 spring注解版refresh之prepareRefresh

prepareRefresh()准备此上下文以进行刷新,设置其启动日期和活动标记以及执行属性源的任何初始化/** * Prepare this context for refreshing, setting its startup date and * active flag as well as performing any initialization of property sources. 准备此上下文以进行刷新,设置其启动日期和活动标记以及执行属性源的任何初始化 */ pro

2021-01-27 09:03:32 112

原创 spring之prepareBeanFactory

prepareBeanFactory()1.第一步/** * 为工厂添加一些材料,用于后面的操作的顺利进行,工厂添加一些属性值,用于后面对于bean的操作 * 添加了如下操作: * 初始化类加载器 * 初始化spel解析器 * 设置属性注册解析器PropertyEditor 这个主要是对bean的属性等设置管理的一个工具 * 增加一个处理Aware相关接口的Bean处理器 并设置相关忽略的接口。 * 具体应用在Bean初始化之前,属性填充过程中,进

2021-01-27 09:02:10 206

原创 spring之obtainFreshBeanFactory

obtainFreshBeanFactory()1.第一步/** * Tell the subclass to refresh the internal bean factory. * @return the fresh BeanFactory instance * @see #refreshBeanFactory() * @see #getBeanFactory() */ protected ConfigurableListableBeanFactory obtainFreshB

2021-01-27 09:01:22 66

原创 spring源码

spring一.IOC控制反转bean生命周期循环依赖三级缓存factorybean和beanfactory区别设计模式applicationcontext和beanfactory区别ioc容器bean–》数据结构----》map----》三级缓存[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4UpOl1ga-1611709238402)(.\image-20210114143018866.png)]beanfactorypostprocessor 增

2021-01-27 09:00:52 58

原创 spring中文文档

spring相关中文文档类框架中文文档Spring Boot 中文文档Spring Framework 中文文档Spring Cloud 中文文档中文

2021-01-14 18:32:52 80

原创 springboot启动流程原理_启动jar调试方法

2021-01-04 16:39:47 150

原创 2020-12-31

Java URL扩展机制

2020-12-31 16:37:40 60

原创 如何在linux运行多个tomcat

如何在linux中运行多个tomcat

2020-11-05 14:47:09 76

原创 springboot集成mybatis-plus

遇到的问题:如果Java类中的主键对应的id 不是 id而是其他的比如 userId等等,一定要在userId上面加一个@TableId(“user_id”)----->这个user_id 是数据库中的字段其次,数据库命名规范,最好是user_name,pass_word,则对应的Java对象中的属性 是 userName,passWord,这是驼峰命名法,将user_name,pass_word与Java对象中的userName,passWord一一映射,不然很难办,遵守约定把,不然很难受的,我

2020-09-30 14:29:03 152

原创 centos7安装mysql5.7

安装链接

2020-09-24 11:47:40 89 1

原创 大数据需要学习的技术

java(Java se,javaweb)Linux(shell,高并发架构,lucene,solr)Hadoop(Hadoop,HDFS,Mapreduce,yarn,hive,hbase,sqoop,zookeeper,flume)机器学习(R,mahout)Storm(Storm,kafka,redis)Spark(scala,spark,spark core,spark sql,spark streaming,spark mllib,spark graphx)Python(python,

2020-09-22 18:08:33 168

原创 hadoop2.7.5_apache_centos7集群搭建过程

基于centos7搭建的hadoop的apache版本的集群搭建1.环境准备centos7虚拟机hadoop-2.7.5.tar.gz压缩包jdk-8u151-linux-x64.tar.gz 压缩包2.搭建基础虚拟机一般创建的centos7 虚拟机 缺少很多基础的运行环境,比如jdk,还有其他的 比如ifconfig,vim等命令,这里首先搭建一个具有基本的环境,反正就是一些必须的运行环境2.1 创建虚拟机这里使用vm创建虚拟机都会把,会就不说了2.2 配置虚拟机,添加一些基

2020-09-21 09:15:02 234

原创 aop切入点表达式

aop切入点表达式

2020-09-10 09:06:30 84

原创 tsm存储引擎

tsm存储引擎链接

2020-09-09 09:53:34 60

原创 springboot打包成maven仓库中的sdk

springboot打包成maven仓库中的sdk首先将pom文件中的关于该项目继承springboot父项目的依赖去除,再去除一些不相干的依赖,插件也去除在新项目中导入这个jar(sdk),需要新建一个配置类,使用注解扫描这个jar中的标有@compent,@service等注解的类,将其加入到spring容器中管理。使用lifecycle 中 的install 进行打包...

2020-09-08 16:30:42 1043

原创 Optional解析

Optional解析地址

2020-09-07 11:16:34 93

转载 Java8函数式接口

链接地址

2020-09-02 09:25:09 58

原创 代理模式

在有些情况下,一个客户不能或者不想直接访问另一个对象,这时需要找一个中介帮忙完成某项任务,这个中介就是代理对象。例如,购买火车票不一定要去火车站买,可以通过 12306 网站或者去火车票代售点买。又如找女朋友、找保姆、找工作等都可以通过找中介完成。在软件设计中,使用代理模式的例子也很多,例如,要访问的远程对象比较大(如视频或大图像等),其下载要花很多时间。还有因为安全原因需要屏蔽客户端直接访问真实对象,如某单位的内部数据库等。代理模式的定义与特点代理模式的定义:由于某些原因需要给某对象提供一个代理以控

2020-08-31 17:06:46 60

原创 开闭原则

在软件开发中,为了提高软件系统的可维护性和可复用性,增加软件的可扩展性和灵活性,程序员要尽量根据 7 条原则来开发程序,从而提高软件开发效率、节约软件开发成本和维护成本。我们将在下面的几节中依次来介绍这 7 条原则,本节首先介绍开闭原则。开闭原则的定义开闭原则(Open Closed Principle,OCP)由勃兰特·梅耶(Bertrand Meyer)提出,他在 1988 年的著作《面向对象软件构造》(Object Oriented Software Construction)中提出:软件实体应当

2020-08-31 17:06:30 57

原创 状态模式

在软件开发过程中,应用程序中的有些对象可能会根据不同的情况做出不同的行为,我们把这种对象称为有状态的对象,而把影响对象行为的一个或多个动态变化的属性称为状态。当有状态的对象与外部事件产生互动时,其内部状态会发生改变,从而使得其行为也随之发生改变。如人的情绪有高兴的时候和伤心的时候,不同的情绪有不同的行为,当然外界也会影响其情绪变化。对这种有状态的对象编程,传统的解决方案是:将这些所有可能发生的情况全都考虑到,然后使用 if-else 语句来做状态判断,再进行不同情况的处理。但当对象的状态很多时,程序会变得

2020-08-31 17:06:14 131

原创 单例模式

在有些系统中,为了节省内存资源、保证数据内容的一致性,对某些类要求只能创建一个实例,这就是所谓的单例模式。单例模式的定义与特点单例(Singleton)模式的定义:指一个类只有一个实例,且该类能自行创建这个实例的一种模式。例如,Windows 中只能打开一个任务管理器,这样可以避免因打开多个任务管理器窗口而造成内存资源的浪费,或出现各个窗口显示内容的不一致等错误。在计算机系统中,还有 Windows 的回收站、操作系统中的文件系统、多线程中的线程池、显卡的驱动程序对象、打印机的后台处理服务、应用程序的

2020-08-31 17:06:00 132

原创 里氏替换原则

里氏替换原则的定义里氏替换原则(Liskov Substitution Principle,LSP)由麻省理工学院计算机科学实验室的里斯科夫(Liskov)女士在 1987 年的“面向对象技术的高峰会议”(OOPSLA)上发表的一篇文章《数据抽象和层次》(Data Abstraction and Hierarchy)里提出来的,她提出:继承必须确保超类所拥有的性质在子类中仍然成立(Inheritance should ensure that any property proved about supert

2020-08-31 17:05:42 257

原创 组合模式

在现实生活中,存在很多“部分-整体”的关系,例如,大学中的部门与学院、总公司中的部门与分公司、学习用品中的书与书包、生活用品中的衣月艮与衣柜以及厨房中的锅碗瓢盆等。在软件开发中也是这样,例如,文件系统中的文件与文件夹、窗体程序中的简单控件与容器控件等。对这些简单对象与复合对象的处理,如果用组合模式来实现会很方便。组合模式的定义与特点组合(Composite)模式的定义:有时又叫作部分-整体模式,它是一种将对象组合成树状的层次结构的模式,用来表示“部分-整体”的关系,使用户对单个对象和组合对象具有一致的访

2020-08-31 17:05:28 201

原创 单一职责原则

单一职责原则也是面向对象设计原则中的一条,下面我们就来详细地对其进行介绍。单一职责原则的定义单一职责原则(Single Responsibility Principle,SRP)又称单一功能原则,由罗伯特·C.马丁(Robert C. Martin)于《敏捷软件开发:原则、模式和实践》一书中提出的。这里的职责是指类变化的原因,单一职责原则规定一个类应该有且仅有一个引起它变化的原因,否则类应该被拆分(There should never be more than one reason for a clas

2020-08-31 17:05:14 98

原创 命令模式

在软件开发系统中,常常出现“方法的请求者”与“方法的实现者”之间存在紧密的耦合关系。这不利于软件功能的扩展与维护。例如,想对行为进行“撤销、重做、记录”等处理都很不方便,因此“如何将方法的请求者与方法的实现者解耦?”变得很重要,命令模式能很好地解决这个问题。在现实生活中,这样的例子也很多,例如,电视机遥控器(命令发送者)通过按钮(具体命令)来遥控电视机(命令接收者),还有计算机键盘上的“功能键”等。命令模式的定义与特点命令(Command)模式的定义如下:将一个请求封装为一个对象,使发出请求的责任和执

2020-08-31 17:04:55 266

原创 迪米特法则

迪米特法则的定义迪米特法则(Law of Demeter,LoD)又叫作最少知识原则(Least Knowledge Principle,LKP),产生于 1987 年美国东北大学(Northeastern University)的一个名为迪米特(Demeter)的研究项目,由伊恩·荷兰(Ian Holland)提出,被 UML 创始者之一的布奇(Booch)普及,后来又因为在经典著作《程序员修炼之道》(The Pragmatic Programmer)提及而广为人知。迪米特法则的定义是:只与你的直接朋

2020-08-31 17:04:33 428

原创 go语言正则表达式

正则表达式语法规则正则表达式是由普通字符(例如字符 a 到 z)以及特殊字符(称为"元字符")构成的文字序列,可以是单个的字符、字符集合、字符范围、字符间的选择或者所有这些组件的任意组合。下面的表格中列举了构成正则表达式的一些语法规则及其含义。1) 字符语法说明表达式示例匹配结果一般字符匹配自身abcabc.匹配任意除换行符"\n"外的字符, 在 DOTALL 模式中也能匹配换行符a.cabc\转义字符,使后一个字符改变原来的意思; 如果字符串中有

2020-08-31 17:03:57 356

原创 模板方法模式

在面向对象程序设计过程中,程序员常常会遇到这种情况:设计一个系统时知道了算法所需的关键步骤,而且确定了这些步骤的执行顺序,但某些步骤的具体实现还未知,或者说某些步骤的实现与具体的环境相关。例如,去银行办理业务一般要经过以下4个流程:取号、排队、办理具体业务、对银行工作人员进行评分等,其中取号、排队和对银行工作人员进行评分的业务对每个客户是一样的,可以在父类中实现,但是办理具体业务却因人而异,它可能是存款、取款或者转账等,可以延迟到子类中实现。这样的例子在生活中还有很多,例如,一个人每天会起床、吃饭、做事

2020-08-28 15:43:34 129

原创 访问者模式

在现实生活中,有些集合对象中存在多种不同的元素,且每种元素也存在多种不同的访问者和处理方式。例如,公园中存在多个景点,也存在多个游客,不同的游客对同一个景点的评价可能不同;医院医生开的处方单中包含多种药元素,査看它的划价员和药房工作人员对它的处理方式也不同,划价员根据处方单上面的药品名和数量进行划价,药房工作人员根据处方单的内容进行抓药。这样的例子还有很多,例如,电影或电视剧中的人物角色,不同的观众对他们的评价也不同;还有顾客在商场购物时放在“购物车”中的商品,顾客主要关心所选商品的性价比,而收银员关心的

2020-08-28 15:43:12 119

原创 桥接模式

在现实生活中,某些类具有两个或多个维度的变化,如图形既可按形状分,又可按颜色分。如何设计类似于 Photoshop 这样的软件,能画不同形状和不同颜色的图形呢?如果用继承方式,m 种形状和 n 种颜色的图形就有 m×n 种,不但对应的子类很多,而且扩展困难。当然,这样的例子还有很多,如不同颜色和字体的文字、不同品牌和功率的汽车、不同性别和职业的男女、支持不同平台和不同文件格式的媒体播放器等。如果用桥接模式就能很好地解决这些问题。桥接模式的定义与特点桥接(Bridge)模式的定义如下:将抽象与实现分离,

2020-08-28 15:42:52 77

原创 工厂方法模式

在现实生活中社会分工越来越细,越来越专业化。各种产品有专门的工厂生产,彻底告别了自给自足的小农经济时代,这大大缩短了产品的生产周期,提高了生产效率。同样,在软件开发中能否做到软件对象的生产和使用相分离呢?能否在满足“开闭原则”的前提下,客户随意增删或改变对软件相关对象的使用呢?这就是本节要讨论的问题。模式的定义与特点工厂方法(FactoryMethod)模式的定义:定义一个创建产品对象的工厂接口,将产品对象的实际创建工作推迟到具体子工厂类当中。这满足创建型模式中所要求的“创建与使用相分离”的特点。我们

2020-08-28 15:42:33 178

原创 适配器模式

在现实生活中,经常出现两个对象因接口不兼容而不能在一起工作的实例,这时需要第三者进行适配。例如,讲中文的人同讲英文的人对话时需要一个翻译,用直流电的笔记本电脑接交流电源时需要一个电源适配器,用计算机访问照相机的 SD 内存卡时需要一个读卡器等。在软件设计中也可能出现:需要开发的具有某种业务功能的组件在现有的组件库中已经存在,但它们与当前系统的接口规范不兼容,如果重新开发这些组件成本又很高,这时用适配器模式能很好地解决这些问题。模式的定义与特点适配器模式(Adapter)的定义如下:将一个类的接口转换成

2020-08-28 15:42:12 177

原创 观察者模式

在现实世界中,许多对象并不是独立存在的,其中一个对象的行为发生改变可能会导致一个或者多个其他对象的行为也发生改变。例如,某种商品的物价上涨时会导致部分商家高兴,而消费者伤心;还有,当我们开车到交叉路口时,遇到红灯会停,遇到绿灯会行。这样的例子还有很多,例如,股票价格与股民、微信公众号与微信用户、气象局的天气预报与听众、小偷与警察等。在软件世界也是这样,例如,Excel 中的数据与折线图、饼状图、柱状图之间的关系;MVC 模式中的模型与视图的关系;事件模型中的事件源与事件处理者。所有这些,如果用观察者模式来

2020-08-28 15:41:51 169

原创 外观模式

在现实生活中,常常存在办事较复杂的例子,如办房产证或注册一家公司,有时要同多个部门联系,这时要是有一个综合部门能解决一切手续问题就好了。软件设计也是这样,当一个系统的功能越来越强,子系统会越来越多,客户对系统的访问也变得越来越复杂。这时如果系统内部发生改变,客户端也要跟着改变,这违背了“开闭原则”,也违背了“迪米特法则”,所以有必要为多个子系统提供一个统一的接口,从而降低系统的耦合度,这就是外观模式的目标。图 1 给出了客户去当地房产局办理房产证过户要遇到的相关部门。图1 办理房产证过户的相关部门

2020-08-28 15:41:27 95

spring-framework-5.2.0.RELEASE-master.zip

spring ioc, spring aop 源码注释,源码解析,有需要学习spring源码的可以看看,里面有详细的方法注释,以及解析

2021-10-19

空空如也

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

TA关注的人

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