自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 《微服务专题》SpringCloud-Eureka源码分析解读

前文:在微服务专题中,我们首先对SpringCloud进行常用组件的学习,比如:服务发现——Eureka,客服端负载均衡——Ribbon,断路器——Hystrix,服务网关——GateWay,模块调用——Open Feign。本篇我们主要来介绍Eureka。主要从Client和Server两个模块进行讲解,客户端包括服务注册、服务心跳续约,服务列表拉取。服务端主要介绍包括接收注册服务、续约请求等等。按照惯例,我们还是来介绍几个本篇将会使用到的接口和类。一、接口和类的介绍。1、DiscoveryClie

2021-02-28 17:13:45 255

原创 《Spring专题》-spring源码解析(六)Spring mvc的工作原理和机制

前文:这一篇幅我们主要来讲解一下Spring Mvc的请求流程,看看Spring框架是如何和Servlet进行整合,然后进行处理请求的。按照惯例,我们还是来说明一下重要的接口和类。一、本篇幅解析源码用到的接口和类。1、DispatcherServlet 它是SpringMVC中的前端控制器(front controller),负责接收request并将request转发给对应的处理组件。2、HanlerMapping 它是SpringMVC中完成url到Controller映射的组件。Dispat

2021-02-19 12:15:11 210

原创 Spring源码解析(五)--Spring扩展点和扩展原理源码解析。

前文:通过Spring专题和Mybatis专题,我们学习到了Spring容器在初始化的时候有很多可以利用的机会。我们本篇主要讲解一下几个重要的接口和类,让我们能够在项目中Spring容器初始化的时候,更好的实现我们的需求开发。一、本篇介绍的接口和类。1、BeanPostProsessor Bean后置处理器。2、BeanDefinitionRegistryPostProsessor 动态注册Bean到Spring容器。3、BeanFactoryPostProsessor bean工厂后置

2021-02-18 13:04:55 440

原创 Spring源码解析(四)--Spring事务的底层源码解析

前文:今天我们主要来学习一下Spring事务的源码解析,主要讲的是Spring的申明式事务的讲解。申明式事务管理: 基于Spring AOP实现。其本质是对方法前后进行拦截,然后在目标方法开始之前创建或者加入一个事务,在执行完目标方法之后根据执行情况提交或者回滚事务。申明式事务管理不需要入侵代码,通过@Transactional就可以进行事务操作,且大部分业务都可以满足,推荐使用。一、本篇幅介绍的接口和类。1、@EnableTransactionManagement 申明式事务的启用注解,也是源码解析

2021-02-17 18:16:54 512

原创 《Spring专题》源码解析(三)--Spring的AOP执行流程源码解析。

前文:我们在Spring源码专题的(一)(二)中讲解了Spring容器加载的流程,和初始化bean的流程以及生命周期。有了前两章知识的储备,我们再来看本篇幅讲解的Aop执行流程,会相对容易一些。因为涉及到了后置处理器的注册和bean初始化前后的后置处理器的调用。按照往常惯例,我们先来介绍一些类和接口的概念和使用场景。一、本篇幅涉及到的类和接口。1、AspectJAutoProxyRegistrar 实现ImportBeanDefinitionRegistrar接口,它会向容器注册一个自动代理创建器au

2021-02-14 19:18:09 177

原创 Spring专题源码解析(二)Spring容器刷新时的初始化容器时的单实例bean的流程。

前文:在Spring专题源码解析(一)中我们对Spring容器初始化时的整体流程进行了解析,和容器初始化时beanFactory和各种PostProsessor后置处理器进行了解析说明,本篇我们主要讲解容器初始化时的一个初始化剩下单实例bean的整体流程。主要是下面这个方法。finishBeanFactoryInitialization(beanFactory);本篇幅我们主要来讲解这个方法。一、讲本篇中要解析的几个接口和类和属性。1、RootBeanDefinition 该类与AbstractB

2021-02-13 17:33:44 162 1

原创 Spring专题源码解析(一)Spring容器刷新时的工作流程。

在Spring专题中,我们将对如何初始化Spring容器、Bean生命周期的解析,循环依赖的解决,AOP的源码解析,事务控制的源码解析,MVC源码解析,Spring的扩展点和扩展原理,以及在底层框架中运用的各种设计模式进行学习借鉴。在Spring源码解析的专题中,我们将会经常遇到后置处理器的专有名词,底层大量的运用了后置处理器来完成各种复杂的逻辑。按照惯例,首先我们来介绍一些在本篇和后续篇幅中将要用的一些接口和类的说明。一、容器初始化常用接口和类说明。1、BeanFactory bean工厂接口

2021-02-10 15:10:22 229

原创 Mybatis源码解析(五)--Mybatis底层框架运用的设计模式解析。

前文:在Mybatis前几章对源码进行了解析。在这一章,我们回顾整个Mybatis源码底层利用了哪些设计模式。如何在我们日常的开发任务中去借鉴使用这些设计模式,是自己的代码整体架构更容易扩展和减少代码冗余,降低耦合度。一、运用的设计模式简介。1)工厂模式2)建造者模式(Builder)3)单例模式4)适配器模式5)代理模式6)模板方法模式7)装饰器模式二、各个设计模式的简介。1、工厂模式。简单工厂模式。组成要素:Product:抽象产品,定义工厂方法所创建的对象的接口,也就是实际

2021-02-06 16:00:47 646

原创 Mybatis源码解析(四)-解析Mybatis是如何借助springboot的自动配置策略进行整合

前文:在Mybatis源码解析(一)(二)(三)中,我们对mybatis如何解析配置信息,以及内部源码进行了解析,和如何利用spring框架的扩展点进行整合。那么,SpringBoot的自动配置的优势,简化了我们开发人员在整套系统上的配置。那么,本篇解析我们就来介绍下Mybatis整合Springboot的流程。还是按照往常的案例,我们先来介绍几个类和注解的使用,这里只做简单介绍,详细介绍会在Spring框架底层专题中进行讲解。一、介绍类和注解的作用。1、MybatisAutoConfiguration

2021-02-05 22:44:01 160

原创 mybatis源码解析(三)mybatis作为ORM持久层框架,如何巧妙利用spring扩展点进行整合。

前文:在mybatis源码解析的(一)(二)中,我们对mybatis如何解析配置文件,如何进行执行sql,以及四个对象和拦截器进行了解析,本篇文章主要是针对mybatis如何利用的spring的拓展点,把mybatis容器整合进spring容器初始化做一个简单的解析。同样我们还是先来解析及几个重要的类。尤其是其中三个。SqlSessionFactoryBean,MapperScannerConfigurer和MapperFactoryBean。当然这里面也会用到spring框架底层的一些接口,例如:Bea

2021-02-02 23:05:49 246

原创 mybatis源码解析(二)解析SqlSession下的四大对象(Executor、StatementHandler、ParameterHandler和ResultSetHandler)和插件使用

前文:在mybatis源码解析(一)中我们已经对mybatis容器初始化加载配置文件和解析mapper.xml和jdk动态代理mapper接口,简单回顾下上文解析,首先是通过SqlSessionFactoryBuilder加载全局配置文件(包括SQL映射器),这些配置都会封装在Configuration中,其中每一条SQL语句的信息都会封装在MappedStatement中。然后创建SqlSession,这时还会初始化Executor执行器。最后通过调用sqlSession.getMapper()来动态代理

2021-01-31 14:48:25 1022 3

原创 一行行手撕mybatis源码

一、 首先介绍几个类。1、SqlSessionFactoryBuilder用来构建SqlSessionFactory (默认为DefaultSqlSessionFactory)2、SqlSessionFactorysqlsession的创建工厂接口。3、XMLConfigBuilder用来构建生成Configuration类(全局配置类,也就是mybatis的配置文件对用的java类)。4、XPathParser位于XMLConfigBuilder ,用来读取xml文件流,解析的各个标签,

2021-01-30 20:37:42 219

原创 mysql联合索引问题分析

首先是问题:CREATE TABLE student (id int(11) NOT NULL AUTO_INCREMENT,name varchar(255) DEFAULT NULL,cid int(11) DEFAULT NULL,PRIMARY KEY (id),KEY name_cid_INX (name,cid),KEY name_INX (name)) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8随便建了一个stude

2021-01-27 11:08:35 833

原创 面试题-http请求所经过的流程

一、TCP/IP协议TCP/IP协议模型(Transmission Control Protocol/Internet Protocol),包含了一系列构成互联网基础的网络协议,是Internet的核心协议,通过20多年的发展已日渐成熟,并被广泛应用于局域网和广域网中,目前已成为事实上的国际标准。TCP/IP协议簇是一组不同层次上的多个协议的组合,通常被认为是一个四层协议系统,与OSI的七层模型相对应。HTTP协议就是基于TCP/IP协议模型来传输信息的。二、TCP三次握手TCP是面向连接的,无论

2021-01-26 23:06:14 517

原创 springcloud新网关gateWay使用注意点和nginx实现网关的高可用

server: port: 8020spring: application: name: api-gateway2 cloud: nacos: discovery: server-addr: localhost:8848 gateway: routes: - id: gateway-service2 uri: lb://cloud-nacos-server predicat

2020-06-25 15:29:35 6432

原创 nginx使用教程指南

一、Nginx简介Nginx是一个web服务器,可以访问静态资源,也可以用来做负载均衡及反向代理使用,接下来说一下安装过程。二、下载Nginx相关组件1.安装编译环境# 安装make:yum -y install gcc automake autoconf libtool make# 安装g++:yum install gcc gcc-c++2. 依赖的组件yum安装(推荐)...

2020-02-22 20:11:39 270

原创 iText5实现Java生成PDF文件

所需要依赖。注意版本 否则会出现报错 字体取值模块 <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.4.3<...

2020-02-17 10:04:09 500

原创 spring事务管理

**PROPAGATION_REQUIRED -- 支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。PROPAGATION_SUPPORTS -- 支持当前事务,如果当前没有事务,就以非事务方式执行。PROPAGATION_MANDATORY -- 支持当前事务,如果当前没有事务,就抛出异常。PROPAGATION_REQUIRES_NEW -- 新建事务,如果当前存在事务...

2020-02-01 16:02:28 102

原创 mysql 实现某一字段重复 按另一字段排序取最新值 相当于函数row_number() over()

1.设置初始值2.一定要进行order by 排序 (里面要有两个字段 一个是分组的字段 一个是取最新值的字段)https://www.jianshu.com/p/3419550152d5https://blog.csdn.net/mingming20547/article/details/93979421SET @rank := 0;SET @CI := NULL;SELE...

2019-12-28 22:47:55 1066

转载 Apollo使用教程

https://www.cnblogs.com/ccz-love-lqm/p/11941267.html

2019-12-08 17:43:39 951

原创 docker创建私服

docker准备工作# 卸载旧版本yum remove -y docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-selinux \docker-engine-selinux \d...

2019-12-07 12:21:20 166

原创 windows下启动redis

进入 DOS窗口在进入Redis的安装目录输入:redis-server --service-install redis.windows.conf --loglevel verbose ( 安装redis服务 )输入:redis-server --service-start ( 启动服务 )输入:redis-server --service-stop (停止服务)...

2019-11-23 10:59:11 77

转载 GIT使用案例:git

转自:https://blog.csdn.net/chang_ge/article/details/80837034本帖主要介绍一下Git在实际项目开发中的使用流程,包括克隆、暂存、提交、推送、拉取、分支、冲突解决等,暂时还不包括回退。1、首先需要安装Git,下一步下一步就行,这里就不说了。值得一提的是,如果Git安装成功,当你在某个文件夹下点击鼠标右键的时候,弹出的菜单中会有一项是Git B...

2019-11-10 19:36:10 104

原创 前端JS操作下拉框取值,单选框取值

<select class="form-control col-sm-3" id="levelThree" data-placeholder="请选择分类..."> <th:block th:unless="${null == thirdLevelCategories}"> <th:block th:each="c : ${th...

2019-11-03 10:23:26 1037

原创 MySQL事务隔离级别与锁

数据库锁共享锁(Shared lock)例1:T1: select * from table (请想象它需要执行1个小时之久,后面的sql语句请都这么想象)T2: update table set column1=‘hello’过程:T1运行 (加共享锁)T2运行等待T1运行完之后再运行T2之所以要等,是因为T2在执行update前,试图对table表加一个排他锁,而数据库规定同一...

2019-08-22 14:48:26 171

原创 mysql索引底层结构B树和B+树

1.为什么要用B+Tree实现目前大多数数据库系统及文件系统都采用 B-Tree 或其变种 B+Tree 作为索引结构。B+ 树中的 B (balance)代表平衡,而不是二叉。B+ 树是从最早的平衡二叉树演化而来的。B+ 树是由二叉查找树、平衡二叉树(AVLTree)和平衡多路查找树(B-Tree)逐步优化而来。二叉查找树:左子树的键值小于根的键值,右子树的键值大于根的键值。AVL 树:平...

2019-08-21 18:00:26 2532 1

原创 深入了解AOP面向切面和动态代理机制

JDK动态代理cglib动态代理一个是被代理对象需要实现JDK提供的动态代理接口。通过cglib的jar包实现动态代理,该方法只需要对目标对象继承即可Spring支持两种方法,那么我们在使用spring进行动态代理时究竟使用的哪一种方法呢?spring优先支持实现接口的方式,如果没有接口则使用cglib方式。下面我们看一看这两种方法有什么区别。 下面我们通过JDK实现动态代理,需求是如下:...

2019-08-21 11:16:40 509

原创 HashMap 简介

HashMap 简介HashMap 主要用来存放键值对,它基于哈希表的Map接口实现,是常用的Java集合之一。JDK1.8 之前 HashMap 由 数组+链表 组成的,数组是 HashMap 的主体,链表则是主要为了解决哈希冲突而存在的(“拉链法”解决冲突).JDK1.8 以后在解决哈希冲突时有了较大的变化,当链表长度大于阈值(默认为 8)时,将链表转化为红黑树,以减少搜索时间。底层数据...

2019-08-07 21:29:56 277

原创 用多线程线程实现abc顺序打印

思路,锁住资源,判断条件方案一package com.qst.Tesst;import java.util.Scanner;import java.util.concurrent.Callable;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java...

2019-08-04 15:34:33 261 1

原创 多线程---胡搞--四种实现多线程的方式

package com.qst.Tesst;import java.util.concurrent.Callable;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.FutureTask;public class Te...

2019-08-03 20:47:38 106

原创 笔试算法----模糊匹配

模糊匹配算法liru:输入asdfgha?d输出 3package com.qst.Tesst;import java.util.Scanner;/*** 模糊匹配算法** */public class Test10 { public static void main(String[] args) { Scanner scanner = ne...

2019-08-02 14:09:54 502

原创 Java笔试算法-------路径规划问题

java笔试算法-------路径规划问题shopee的办公室非常大,小虾同学的位置坐落在右上角,而大门却在左下角,可以把所有位置抽象为一个网格(门口的坐标为0,0),小虾同学很聪明,每次只向上,或者向右走,因为这样最容易接近目的地,但是小虾同学不想让自己的boss们看到自己经常在他们面前出没,或者迟到被发现。他决定研究一下如果他不通过boss们的位置,他可以有多少种走法?第一行 x,y,n ...

2019-08-02 13:45:07 733

原创 springdataJPA使用流程

1.编写实体类import javax.persistence.*;@Entity//实体类@Table(name = "t_user")//表名public class User { @Id//主键 @GeneratedValue(strategy = GenerationType.IDENTITY)//自增 private Integer id; @C...

2019-07-25 13:52:11 152

原创 Springboot 上传图片到项目路径下不能访问,需要重启简析

1.bug场景做图片上传 功能是,发现图片上传至项目下后无法通过ip:port/路径访问,重启项目是就可以正常访问。2.bug原因这是因为对服务器的保护措施导致的,服务器不能对外部暴露真实的资源路径,需要配置虚拟路径映射访问。3.bug解决@Configurationpublic class MyBlogWebMvcConfigurer implements WebMvcConfig...

2019-07-22 18:57:18 2623

原创 【mysql】You must reset your password using ALTER USER statement before executing this statement.

原因:密码过期第一步。管理员方式打开命令窗口第二步。mysql -uroot -p 进入第三。alter user user() identified by “123456”;就可以了

2019-07-22 08:41:33 120

原创 在linux环境下部署springboot项目,并在docker容器下运行tomcat

一.因为是springboot项目,所以有几点必须事先准备1.打成war包的方式1. <artifactId>springboot-crud</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging>2. 其...

2019-07-21 21:25:47 1060

原创 docker 操作命令

docker 操作命令systemctl status docker 查看docker状态systemctl restart docker 重启dockersystemctl start docker 开启dockerdocker search xxxx 搜索某某软件镜像docker pull mysql :tag下载某某镜像 tag标签docker images 查...

2019-07-20 23:33:48 77

转载 MySQL事务隔离级别和MVCC (绝对看得懂)

MySQL事务隔离级别和MVCC (绝对看得懂)链接地址:https://blog.csdn.net/qq_38538733/article/details/88902979

2019-07-19 17:08:15 630

原创 jquery中的ajax请求,以及跳转方式的记录

$.ajax({ url:"${APP_PATH}/user/dologin", type:"POST", data: { email: loginEmail, password:loginpwd }, s...

2019-06-27 10:30:10 898

原创 刷面试题遇到的坑

美团-大众点评的笔试题:1.类a继承类b并重写b类的protected方法func时,a中func方法的访问修饰符可以是?private/protectedprotected/publicprivate/publicprivate/protected/public正确答案: B 你的答案: A (错误)解析:1、重写方法不能比被重写方法限制有更严格的访问级别。子类继承父类的方法时...

2019-06-21 13:47:10 472

空空如也

空空如也

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

TA关注的人

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