自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spring Boot中监听器的实现和自定义监听器

案例监听器模式要素1.事件public abstract class WeatherEvent { public abstract String getWeather();}public class SnowEvent extends WeatherEvent { @Override public String getWeather() { return "snow"; }}public class RainEvent extends

2021-01-03 21:55:18 420 1

原创 SpringBook 2.x 启动过程

public ConfigurableApplicationContext run(String... args) { //1、计时监控类 StopWatch stopWatch = new StopWatch(); stopWatch.start(); // 2、初始化应用上下文和异常报告集合 ConfigurableApplicationContext context = null; Collection<SpringBootExcepti

2021-01-01 16:04:30 197

原创 Spring 中初始化器的实现和自定义

自定义初始化器在 Springboot 中使用自定义初始化器大致可以分为以下两个步骤:自定义初始化器,一般是实现 ApplicationContextInitializer 接口。注册初始化器。为何要自定义初始化器Spring 是一个扩展性很强的容器框架,为开发者提供了丰富的扩展入口,其中一个扩展点便是 ApplicationContextInitializer (应用上下文初始化器 )。ApplicationContextInitializer 是 Spring 在执行 Configura

2021-01-01 16:00:00 560

原创 顺序栈

堆栈的基本概念堆栈(也简称作栈)是一种特殊的线性表,堆栈的数据元素以及数据元素间的逻辑关系和线性表完全相同,其差别是线性表允许在任意位置进行插入和删除操作,而堆栈只允许在固定一端进行插入和删除操作。堆栈中允许进行插入和删除操作的一端称为栈顶,另一端称为栈底。堆栈的插入和删除操作通常称为进栈或入栈,堆栈的删除操作通常称为出栈或退栈。从输入和输出数据元素的位置关系看,堆栈的功能和一种火车调度装置的功能类同。堆栈抽象数据类型数据集合堆栈的数据集合可以表示为a0,a1,…,an-1,每个数据元素的数据

2020-06-27 23:22:54 258

原创 单向循环链表,双向循环链表,仿真链表

单向循环链表单向循环聊表是单链表的另一种形式,其结构特点是链表中最后一个结点的指针不再是结束标记,而是指向整个链表的第一个结点,从而使单链表形成一个环。和单链表相比,循环单链表的长处使从链尾到链头比较方便。当要处理的数据元素序列具有环型结构特点时,适用于采用循环单链表。和单链表相同,循环单链表也有带头结点结构和不带头节点结构两种,带头节点的循环单链表实现插入和删除操作时,算法实现较为方便。带头结点的循环单链表结构如下:带头结点的循环单链表的操作实现方法和带头结点的单链表的操作实现方法类同, 差别在

2020-06-27 17:26:44 406 1

原创 单向链表

链表结构链式存储结构式基于指针实现的。我们把一个数据元素和一个指针称为结点。链式存储结构式用户指针把相互直接关联的结点(即直接前驱结点或直接后驱结点)链接起来。链式存储结构的线性表称为链表。链表类型根据链表的构成方式的不同可以分为:1.单向链表2.单向循环链表3.双向循环链表单向链表单链表式构成链表的每个结点只有一个指向直接后继点的指针。单链表的表示方法:单链表中每个结点的结构:单链表结构单链表有带头结点结构和不带头系欸但结构两种。我们吧指向单聊表的指针称为单链表的头指针。头指针

2020-06-26 22:42:48 512

原创 线性结构,顺序表

关于线性结构要了解以下几个方面:1.线性结构2.线性表抽象数据类型3.顺序表4.顺序表应用线性结构定义:如果一个数据元素序列满足:1.除第一个和最后一个数据元素外,每个数据元素只有一个前驱数据元素和一个后继数据元素;2.第一个数据元素没有前驱数据元素;3.最后一个数据元素没有后继数据元素。则称这样的数据结构为线性结构线性表抽象数据类型线性表抽象数据类型主要包括两个方面: 既数据集合和该数据集合上的操作集合。数据集合可以表示为a0,a1,a2…an-1,每个数据元素的数据类型可以是任

2020-06-26 11:46:15 335

原创 getResource和getResources的区别

getResource与getResources 都是【加载当前类加载器以及父类加载器所在路径的资源文件】/** * 1.getResource * 加载当前类加载器以及父类加载器所在路径的资源文件 * 将遇到的第一个资源文件直接返回!!! * 比如当前工程类路径有conf/demo.properties文件,引入的第三方jar包也有这个文件 * 返回的是当前工程下的这个资源文件**/ URL url = loader.getResource("conf/demo.properties")

2020-05-31 11:25:30 5616

原创 Java获取父类泛型类型

为什么要获取父类的泛型类型?在我们看Spring源码时,通过判断父类的泛型类型,监听器是哪种监听类型,通过以下方式可以获取到监听的类型创建一个Person的父类,泛型类型为String,用于子类继承package com.zk.demo.test;public class Person<T> {}创建一个子类用于继承父类package com.zk.demo.test;public class Student extends Person<String> {

2020-05-31 10:33:26 3397

原创 Spring-cloud Eureka注册中心实现(源码流程)

自动配置相关配置类InstanceRegistryPropertiesEurekaServerConfigBean 服务端配置信息EurekaClientConfigBean 客户端配置信息EurekaInstanceConfigBean 实例信息EurekaDashboardProperties客户端注册实现:(1) EurekaClientConfiguration#eure...

2019-03-31 11:41:14 458

原创 MySql查询语句优化

大批量插入数据时1.大批量数据插入空表,可将表设置成为MyISAM,并通过disable keys将唯一索引关闭;2.大批量插入插入非空Innodb表,可采用如下措施提高效率:&nbsp; &nbsp;2.1 导入数据时按照主键顺序排列;&nbsp; &nbsp;2.2 导入数据前使用set UNIQUE_CHECKS=0,关闭唯一性效验,导入后恢复;&nbsp; &nbsp;...

2019-03-16 23:30:17 216

原创 Closing org.springframework.context.annotation.AnnotationConfigApplicationContext

Spring boot 启动后自动关闭,log输出Closing org.springframework.context.annotation.AnnotationConfigApplicationContext@2c104774: startup date [Thu Aug 16 11:23:04 CST 2018]; parent: org.springframework.context.a...

2018-11-04 11:08:22 8716

原创 Docker的基本组成

Docker Client 客户端Docker Daemon 守护进程Docker Image 镜像Docker Container 容器Docker Registry 仓库Docker客户端/守护进程 C/S架构&nbsp;&nbsp;&nbsp;&nbsp;Docker 是C/S架构的程序,Docker客户端向Docker服务器端也就Docker的守护进程发出请求,守护进...

2018-09-16 11:42:24 786

原创 activemq Jave API 使用

Maven 依赖&amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;org.apache.activemq&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;activemq-all&amp;lt;/artifactId&amp;gt; &amp;lt;version&amp;gt;5

2018-09-16 00:26:44 234

转载 Java中同步容器类、并发容器类

同步容器类&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;同步类容器都是线程安全的。但是在某些场景下可能需要加锁来保护符合操作。符合类操作如:迭代(反复访问元素,便利容器中的所有元素)、跳转(根据指定的顺序找到当前元素的下一个元素)、以及条件运算。这些复合操作在多线程并发地修改容器时,可能会表现出意外的行为,最经典的便是ConcurrentModificat...

2018-09-15 17:19:42 206

原创 Docker应用场景以及开发流程

1. 简化配置这是Docker公司宣传的Docker的主要使用场景。虚拟机的最大好处是能在你的硬件设施上运行各种配置不一样的平台(软件、系统),Docker在降低额外开销的情况下提供了同样的功能。它能让你将运行环境和配置放在代码中然后部署,同一个Docker的配置可以在不同的环境中使用,这样就降低了硬件要求和应用环境之间耦合度。2. 代码流水线(Code Pipeline)管理前一...

2018-09-15 15:30:58 4033

原创 Consider defining a bean of type 'org.springframework.web.client.RestTemplate' in your configuration

使用zookeeper作为Spring cloud的注册中心,消费端启动时报:解决办法:import org.springframework.cloud.client.loadbalancer.LoadBalanced;import org.springframework.context.annotation.Bean;import org.springframework.cont...

2018-09-12 22:28:40 1850

原创 Spring boot 启动后 Process finished with exit code 0

在研究Spring cloud用zookeeper做注册中心的时候,消费端,启动后就立即关闭了,最后报 Process finished with exit code 0 后来发现没有加上依赖&lt;dependency&gt; &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt; &lt;artifact...

2018-09-12 22:21:23 4590

原创 Spring Cloud

简介&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Spring Cloud是基于Spring boot的。Spring Boot是由pivotal团队提供的全新Web框架,它组要的特点就是简化了开发和部署的过程,简化了Spring复杂的配置和依赖管理,通过起步依赖和内制Servlet容器能够使开发者迅速搭建起一个Web工程。所以Spring Cloud在开发部署上继承...

2018-09-09 20:25:02 133

原创 数据库锁机制

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;数据并发会引起很多问题,在一些场合下有些问题时允许的,但在另一些场合下可能是致命的。数据库通过锁机制解决并发访问的问题,虽然不同的数据库在实现细节上存在差别,但原理基本上是一样的。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;按锁定的对象的不同,一般可以分为表锁定和行锁定。

2018-09-09 13:33:38 1741

原创 数据库事务,原子性(Atomic)、一致性(Consistency)、隔离性(Isolation)、持久性(Durabiliy)

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;很多复杂的事务要分布进行,但它们组成了一个整体,要么整体生效,要么整体失效。这种思想反应到数据库上,就是多条SQL语句,要么所有执行成功,要么所有执行失败。数据库事务由严格的定义,它必须满足4个特性: 原子性(Atomicity),一致性(consistency),隔离性(Isolation),持久性(Durability)。...

2018-09-09 13:07:02 38121

原创 Docker 安装 tomcat

Docker下安装Tomcat Tomcat是由Apache软件基金会下属的jakarta项目开发的一个Servlet容器, 按照Sun Microsystems提供的技术规范,实现了对Servlet和Java Server Page(JSP)的支持。同时,它提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台、安全域管理和Tomcat阀等。由于Tomcat本身也...

2018-09-09 12:59:00 291

原创 Spring boot RESTful API 测试用例

RESTful API和传统API的区别:1.1、用URL描述资源: 传统的请求用url来描述你的行为,比如/user/query? name=xiaoming,看这个url就知道我们是要针对这个叫小明的用户进行一个查询,那么查询就是我们要进行的行为。而Restful API则是用来描述资源,比如/user/1,他既是一个查询,又是一个删除,而这个1呢就是我们用户ID为1的用户资...

2018-08-28 23:06:47 1010

原创 Spring boot 如何通过配置文件读取定时器何时启动配置

场景描述: 当开发完成一个需求后,需要区分线上和线下配置。定时任务也是这样的,开发了一个需要每天十二点执行的定时器,但这也仅仅是线上要每天十二点执行,这对于测试来说,十分不方便,所以需要通过配置文件来获取配置的定时器执行时间。启动类中使用@EnableScheduling开启定期任务 具体的对应定时任务的逻辑实现服务 1、通过@PropertySource来加载classpath下...

2018-08-28 09:40:59 11411

原创 Unexpected exception in the selector loop., dubbo version: xxx, current host: 127.0.0.1 报错

记录一个Dubbo报错,这是在生产上运行了一段时间,莫名出现的错误,最后被同事解决了,在此做一下记录2018-08-26 08:10:01125 WARN [New I/O server worker #1-4] [NioWorker] [DUBBO] Unexpected exception in the selector loop., dubbo version: 2.5.3, cur...

2018-08-28 00:35:02 9792 2

原创 利用ApplicationContextAwareshixian实现业务中根据不同标识进行分发

先简单说一下应用场景:有时我们的业务中需要根据一个不同的标识,进入不同的处理结果,一个简单的例子的例子就是我们在调用支付宝接口或者微信的接口是,进行不同方式的加密,发送到不同的接口,然后处理返回的结果方式也不同,这时就可以使用了。先简单说一下ApplicationContextAwareshixian接口的作用:public interface ApplicationContextAw...

2018-08-28 00:29:05 267

原创 生成RSA密钥

在Linux上生成RSA密钥的步骤为:步骤一:RSA私钥(privateKey)(PHP使用的私钥) 命令: openssl genrsa -out rsa_2048.key 2048步骤二:将私钥转换成PKCS#8格式 (Java使用PKCS#8格式的私钥) 命令: openssl pkcs8 -topk8 -inform PEM -in rsa_2048.key -outform ...

2018-08-26 20:37:59 459

原创 Spring boot是如何实现自动化配置的?

Spring Enable*高级应用及原理我相信在很多的Spring boot项目中都大量使用到了以Enable*的注解。 比如EnableAsync、EnableScheduling、EnableAspectJAutoProxy、EnableCaching等,Enable表示开启/允许一项功能。 Enable*工作原理 我们只需要几个很简单的注解就能开启一个复杂的功能,这是多么简易的用...

2018-08-26 20:27:53 4170

转载 gitosis使用笔记

gitosis是Git下的权限管理工具,通过一个特殊的仓库(gitosis-admin.git)对Git权限进行管理。 1:服务端安装并配置gitosis (1)通过以下方式获取到安装包 root@wz:/home/git# git clone https://github.com/res0nat0r/gitosis (2)使用python进行安装 root@wz:/home/git# ...

2018-08-26 15:21:38 271

原创 ubuntu下Git和GitHub环境的搭建

ubuntu下Git和GitHub环境的搭建 第一步: 安装Git,使用命令 sudo apt-get install git 第二步: 到GitHub上创建GitHub帐号 第三步: 生成ssh key,使用命令 ssh-keygen -t rsa -C “用户名”,一直enter,enter,enter ls -a 查看隐藏文件生成如下文件: 第四步: vi .ssh ...

2018-08-26 15:17:01 2170

原创 ubuntu16.04下安装docker

开始安装 由于apt官方库里的docker版本可能比较旧,所以先卸载可能存在的旧版本: $ sudo apt-get remove docker docker-engine docker-ce docker.io1 更新apt包索引: $ sudo apt-get update 安装以下包以使apt可以通过HTTPS使用存储库(repository): $ sudo apt-get i...

2018-08-26 15:07:46 166

原创 Spring boot整合redis,以及使用Mybatis通用Mapper

先简单介绍一个Spring boot, redis. 和这个通用的Mapper &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; 什么是 Spring Boot?它使用 “习惯优于配置” (项目中存在大量的配置,此外还内置一个习惯性的配置,让你无须)的理念让你的项目快速运行起来。 它并不是什么新的框架,而是默认配置了很多框架的使用方式,就像 Maven 整合了所有的 jar 包一样,Spring Boot 整合...

2018-08-26 14:10:45 1507

原创 IntelliJ IDEA导入Spring源码

下载Spring-framework源码 Spring-framework 源码在GitHub中得仓库位置: https://github.com/spring-projects/spring-framework.git安装GIt: 下载路径: https://www.git-scm.com/download/win 具体安装方式:https://jingyan.baidu.com/a...

2018-08-25 15:24:21 2711

原创 Spring 整体架构--Spring源码深度解析--spring整体知识

前言:    Spring 始于2003年,轻量级 Java 开源框架。   Spring 是为了解决企业应用开发的复杂性而创建的,它使用基本的 JavaBean 来完成以前只可能由 EJB 完成的事情。   Spring 的用途不仅限于服务器端的开发,从简单性、可测试性和松耦合的角度而言,任何 Java 应用都可以从 Spring 中受益。Spring 的整体架构: ...

2018-08-23 21:24:44 347

空空如也

空空如也

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

TA关注的人

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