自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(65)
  • 问答 (5)
  • 收藏
  • 关注

原创 Feign的使用以及调用过程分析

Feign的使用以及调用过程分析在进行微服务之间的调用的时候,我们本质上都是通过http请求来进行的(参数处理,返回结果处理),在使用Feign之前我们都是使用的RestTemplate来完成这些工作的,类似于下面的这种方式:UserInfo userInfo = this.restTemplate.getForObject("http://user-client/userInfo/getUser/{name}", UserInfo.class, name); 这仅仅只是一次接口的调用,往往微服务之

2021-06-07 16:07:14 5809 1

原创 Spring源码阅读之bean对象的创建过程

Spring源码阅读之bean对象的创建过程​ Spring是通过IOC容器来管理对象的,该容器不仅仅只是帮我们创建了对象那么简单,它负责了对象的整个生命周期-创建、装配、销毁。这种方式成为控制反转(组件对象控制权的转移,从程序代码本身转移到了外部容器,容器创建完对象后注入组件中)。​ Spring的核心的是容器,不过这个容器并不是唯一的,框架本身就提供了很多个容器的实现,大概分为两种类型:BeanFactory:最简单的容器,只能提供基本的DI(依赖注入)功能。ApplicationCont

2020-06-10 23:52:58 3628 2

原创 Spring源码阅读之WebapplicationContext初始化

Spring源码阅读之WebapplicationContext初始化​ 当一个Web应用在服务器(tomcat)中启动的时,tomcat需要给该应用创建一个ServletContext对象作为公共容器保存了应用中的配置信息。这些配置信息是通过读取web.xml文件中的标签来获取的。​ 应用在tomcat中启动时,首先会读取web.xml中两个标签节点<context-param>、<listener>并创建ServletContext对象,将context-param标签中

2020-06-09 21:46:33 666 1

原创 从数据库的执行计划来谈谈SQL索引优化

从数据库的执行计划来谈谈SQL优化本文分4个章节:1.分析SQL语句的执行流程。2.分析explain执行计划中每个列的含义。3.针对explain列的含义来进行索引优化,4.优化总结文章目录从数据库的执行计划来谈谈SQL优化1.SQL语句的执行流程2.执行计划解析1. id 列2. select_type 列3. table 列4. type 列5. possible_keys 列6. key 列7. key_len 列8. ref 列9. rows 列10. filtered 列11. extra

2020-06-07 00:09:41 367

原创 HashMap在JDK1.7和1.8主要区别

HashMap在JDK1.7和1.8主要区别public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable首先从声明上来看,HashMap继承自AbstractMap 实现了Map、Cloneable、Serializab...

2020-04-15 15:51:08 517

原创 List集合源码解析

java集合之List集合源码解析1.为什么会有集合的概念​ 数组在声明的时候就需要固定大小,集合不是可以扩容。Java集合就像一个容器,可以存储任何类型的数据,也可以结合泛型来存储具体的类型对象。在程序运行时,Java集合可以动态的进行扩展,随着元素的增加而扩大。​ 集合的继承关系如下:​ List集合可以存储有序且可重复的数据。有序指的是:集合保存了元素的插入顺序,可重复表示的是...

2020-04-14 15:27:57 331

原创 关于ajax不同方式的传值类型及接受方式

关于ajax不同方式的传值类型及接收方式1.传值先看看ajax的基本格式$.ajax({ url: "", type:"", dataType"", contentType:"", data: , success:function(res){ }})url:传值的地址type:传值类型 GET/POSTdata...

2019-09-12 17:52:52 1320

原创 Spring Boot 集成Mybatis

Spring Boot 集成Mybatis​ 首先在SpringBoot的配置文件application.yml(application.properties)中datasource: url: localhost:3306/testspring: datasource: # 数据库配置 driver-class-name: com.mysql.jdbc.Dr...

2019-07-26 18:27:44 150

原创 Spring Boot中的注解

Spring Boot中的注解​ 实际开发过程中Spring Boot常用的注解有以下几个@RestController@RequestMapping@PathVariable@RequestParam@RequestBody@RestController 是spring boot新增的一个注解,这是注解是很多注解的集合,点开之后发现:@Target(Ele...

2019-07-26 18:26:53 141

原创 vue+iview 分页及查询功能实现

vue+iview 分页及删、查功能实现​ 首先要想实现分页功能必须得知道 当前页码、每页大小、总数目。iview对分页的功能支持还是很强大的,有很多钩子函数具体实现看后端返回的数据<template> <div v-if="this.$store.state.user.userType == 0 || this.$store.state.user.userTyp...

2019-07-01 11:12:01 3519

原创 vue+iview文件上传(base64编码,类型验证和大小限制)

vue+iview文件上传(base64编码、类型验证、大小限制、多文件上传及文件预览)​ iview对文件上传提供了一个专门的标签Upload,不过这个标签默认需要一个接口action属性,但一般我们向后台上传文件并不会选择文件直接就上传了 而是需要和其他的值一起发送请求给后台,并且文件都是转成base64编码。​ iview提供了一个方法阻止默认上传:before-upload这个方法是在...

2019-07-01 11:10:35 6288 1

原创 进程和线程的详细解读

进程和线程背景:当我们执行一段代码,运行一个程序的时候,这个程序所需要的资源必须到位(显卡,GPS之类的),我们将除了CPU之外的PC资源统称为程序的上下文。一个电脑中会有多个任务同时执行,每个任务的时间片(CPU的分配时间)是定义好的,当任务的时间片用完之后,就会被切换出去,等待下一次CPU的到来。(所以说电脑中的任务看似是同时执行的,其实是CPU切换的速度很快—这是对于单核处理器而言)程...

2019-04-16 16:18:02 149

原创 JVM虚拟机学习二、虚拟机内存模型(JDK1.8)

JVM虚拟机学习二、虚拟机内存模型(JDK1.8)基于JDK1.8,HostPot虚拟机JVM运行时内存模型(1.8)先说说与JDK1.7之前的区别:没有了方法区,取而带之的是元空间(这么说不标准,方法区只是JVM规范的概念,并不实际存在。)原来方法区中的运行时常量池中的字符串常量池,静态变量,都存在于堆中了。(注意是字符串常量池存放于堆中,并不是运行时常量池!)方法区中其余的(例...

2019-04-16 16:16:06 1322 1

转载 JVM虚拟机学习一、类加载机制

JVM虚拟机学习一、类加载机制1.类的加载过程​ 类从加载到虚拟机内存到卸载出内存的过程中,一共经历了加载、验证、准备、解析、初始化、使用、卸载这几个阶段,其中准备、验证、解析3个部分统称为连接。​ 加载、验证、准备、初始化、卸载,这五个阶段的顺序是一致的,而解析过程则不一定,它在某些情况下在初始化阶段之后在进行,这是为了支持Java的运行时绑定。(关于运行时绑定:https://www.c...

2019-04-16 16:13:34 156

原创 关于String的赋值创建和new String的过程的解读

关于String的创建过程和intern()解释1.字面值和new创建​ String:不可改变的Unicode字符序列,它的创建是一种池化思想,把需要共享的数据放在池中,用一个存储区域来存放一些公用资源以减少存储空间的开销。String类的数据都会存放在字符串常量池中,JDK1.7后该常量池被移到了堆中! String s1 = "HelloWorld"; String s2=new...

2019-04-16 16:10:44 1018

原创 简单说说mysql的索引

详解mysql索引原理及查询优化1.什么叫索引?​ 索引在MYSQL中也叫“键”,是存储引擎用于快速找到记录的一种数据结构。索引对于良好的性能非常关键,当数据量越来越大时,索引对于性能的影响愈发重要,索引优化查询性能,能够轻易将性能提高好几个数量级。2.出现的原因​ 索引的目的在于提高查询效率,和查阅图书用的目录一样,先定位到章,节,页数。​ 本质都是:通过不断缩小数据的范围来筛选出所需...

2019-04-14 10:33:18 434

原创 java泛型详解(1)

为什么要使用泛型?一般的类和方法,只能使用具体的类型;要么是基本类型,要么是自定义类。如果我有这种需求:可以应用于多种类型的代码。该怎么办? 1. 创建多个class文件,从而可以创建多个不同类型的对象;缺点很明显:代码臃肿,重用性不高 2. 创建一个类文件,给这个类中的成员变量设置Object数据类型;编译期可能会通过,运行时有可能发生异常ClassCastException一般...

2019-04-14 10:31:20 165

原创 浏览器和服务器之间如何编码解码

浏览器和服务器之间如何编码解码1.浏览器和服务器之间编码解码的过程​ 从上图可以看出,有两个过程是我们可以干预设置的,只有当上面两个过程编码格式相同的时候,才不会出现乱码!2.详细剖析get方式编码解码及乱码方式​ 对于GET方式而言:它是将数据附在URL后面进行传输的,这样就很容易出现乱码,因为值有可能传递的是非ASCII吗(HTTP协议是ASCII码传输的,建立在 TCP/IP 协议...

2019-04-14 09:48:12 1458

原创 Spring框架学习二(AOP事务)

Spring框架学习二(AOP事务配置)​ 由于框架的不同相应事务的操作代码不相同,故在Spring的事务处理中,通用的事务处理流程框架是由抽象事务管理器AbstractPlatformTransactionManager来提供的,而具体的底层事务处理实现,由PlatformTransactionManager的具体实现类来实现,如 DataSourceTransactionManager 、J...

2019-04-14 09:44:39 201

原创 Spring框架学习一(IOC、DI、AOP思想)

Spring框架学习一(IOC、DI、注入、AOP思想)文章目录Spring框架学习一(IOC、DI、注入、AOP思想)1.控制反转IOC和依赖注入DI2.注入的实现和注解2.1.实例化bean2.2.bean属性注入3.spring整合junit测试4.Spring的AOP思想1.Servlet中AOP的体现2.Spring中的AOP实现1.控制反转IOC和依赖注入DI​ 首先了解到Spr...

2019-04-14 09:41:49 577

转载 Mybatis中的一级缓存和二级缓存

Mybatis中的一级缓存和二级缓存​ 先说缓存,合理使用缓存是优化中最常见的,将从数据库中查询出来的数据放入缓存中,下次使用时不必从数据库查询,而是直接从缓存中读取,避免频繁操作数据库,减轻数据库的压力,同时提高系统性能。一级缓存​ 一级缓存是SqlSession级别的缓存。在操作数据库时需要构造sqlSession对象,在对象中有一个数据结构用于存储缓存数据。不同的sqlSession之...

2019-04-14 09:35:55 281

原创 SpringMVC的基本运行流程

SpringMVC的基本运行流程​ 先通过一张图片来了解SpringMVC的基本流程具体的执行流程:客户端向服务器端发送url请求,请求被前端控制器捕获(通过Servlet-mapping中的url-pattern标签设置)<servlet-mapping> <servlet-name>springmvc</servlet-name> &l...

2019-04-14 09:33:04 237

原创 Mybatis的基本运行流程

Mybatis基本运行流程总结JDBC的问题:1、数据库连接创建、释放频繁造成系统资源浪费,从而影响系统性能。如果使用数据库连接池可解决此问题。2、Sql语句在代码中硬编码,造成代码不易维护,实际应用中sql变化的可能较大,sql变动需要改变java代码。3、使用preparedStatement向占有位符号传参数存在硬编码,因为sql语句的where条件不一定,可能多也可能少,修改sql...

2019-04-14 09:30:59 531

原创 SpringMVC源码分析之DispatcherServlet的执行流程

SpringMVC源码分析之DispatcherServlet1.DispatcherServlet的初始化​ 前面一片文章大概的讲述了DispatcherServlet的基本作用,也知道它其实就是一个Servlet,下面详细分析DispatcherServlet。​ Web容器初始化后,会为每个Servlet创建对象,并加载其上下文环境。我们都知道,在Tomcat容器中,维护了一个线程池,...

2019-04-13 15:01:58 731

原创 ContextLoaderListener的源码分析

ContextLoaderListener的源码分析​ 本篇是截取我的这篇文章:ServletContext,WebApplicationContext、Servlet初始化​ 首先,我们从web.xml中开始,在web.xml中我们首先配置的是contextLoaderListener,它的作用就是启动web容器时,自动装配ApplicationContext的配置信息。因为它实现了Serv...

2019-04-11 16:31:38 398

原创 细说ServletContext、WebApplicationContext、Servlet的初始化

细说ServletContext、WebApplicationContext、Servlet的初始化浏览器请求发送给服务器的过程:1.浏览器发送http请求到web容器。比如请求发送给tomcat等web容器。2.tomcat将http请求封装成httpServletRequest并发送给web项目。而Servletcontext就是tomcat给web项目创建的全局环境。他有以下特点:...

2019-04-11 16:28:34 2728 4

原创 String和数据库类型的相互转化

String和数据库类型的相互转化1.String和data的相互转换​ 1.1.Date转换成StringSimpleDteFromat simple=new SimpleDateFromat("yyyy-MM-dd HH:mm:ss");//java.text.DataFormat.format()将一个 Date 格式化为日期/时间字符串。String date=simple.fo...

2019-03-17 09:45:32 1286

原创 EL&JSTL表达式

EL&amp;JSTL表达式1.EL表达式​ EL(Express Lanuage)表达式(${ })可以嵌入在jsp页面内部,减少jsp脚本的编写,EL 出现的目的是要替代jsp页面中脚本的编写EL表达式最主要的作用是从域中获取值 &lt;!-- 在域中存值 --&gt; &lt;% request.setAttribute("name", "张三"); Use...

2019-03-17 09:44:40 1064

原创 血泪史之导入项目版本不兼容问题

Eclispe导入项目的环境配置问题今天我在eclipse导入项目的时候 发现我的代码没问题 但是总是无法初始化连接池,浪费我了一下午的时间。再导入项目之后首先就是先检查原项目的环境变量是否和你本机的环境变量一致具体方法:右击项目名称-&gt;Build Path-&gt;Configure Build Path-&gt;查看Libraries中是否有红叉,有叉的地方需要remove掉,在添...

2019-03-14 21:00:12 503

原创 JDBC和数据库连接池的使用

JDBC和数据库连接池的使用1.JBDC和驱动程序​ JDBC提供了一种基准(JAVA API),据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。​ 我们安装好数据库之后,应用程序是没法连接使用数据库的,需要通过驱动程序来使用,驱动程序就是实现了JDBC的jar,不同的数据库有不同的驱动程序。2.JDBC中的接口1. Driver接口​ Driver接口由数据库...

2019-03-11 17:24:06 453

原创 数据库事务和隔离级别的理解

数据库事务和隔离级别的理解1.事务的概念​ 事务指逻辑上的一组操作,组成这组操作的各个单元,要不全部成功,要不全部不成功。2. MySQL数据库事务操作命令​ 直接通过例子来说明1.事务开始但没有提交start transaction事务开始mysql&gt; start transaction;Query OK, 0 rows affectedmysql&gt; update...

2019-03-09 10:36:10 3018

原创 MySQL的锁机制和加锁原理

MySQL的锁机制和加锁原理文章目录MySQL的锁机制和加锁原理1.行锁2.表锁3.页锁4.乐观锁和悲观锁4.1悲观锁4.2乐观锁5.MySQL/InnoDB中的行锁和表锁问题5.1InnoDB锁的特性6.Record Lock、Gap Lock、Next-key Lock锁6.1.Record Lock6.2.Gap Lock6.2.​1 什么叫间隙锁6.2.2 为什么说gap锁是RR隔离级别...

2019-03-09 10:35:01 38410 25

原创 B树和B+树数据结构及使用场景

B树和B+树数据结构及使用场景1.出现的原因​ 我们已经知道他们两是mysql索引的数据结构,为什么要使用这种数据结构呢?我们知道内存读取效率远远高于磁盘IO的效率,当数据量大而不能完全存放于内存时,只能依靠磁盘了,一次存放于磁盘页中,每个磁盘页对应一个树的节点。也就是说只要我们能减少磁盘IO的次数,那么查询效率就会显著提高。如何减少?B树就是通过降低树的深度,将二叉树的“瘦高”变成“矮胖”...

2019-03-09 10:09:42 1302

原创 mysql删除外键提示errno152

mysql删除外键提示errno152mysql&gt; alter table product drop foreign key num;1025 - Error on rename of '.\student\product' to '.\student\#sql2-e38-e' (errno: 152)删除外键约束的时候提示errno152,这里并不是不能删除外键,而是使用了错误的名...

2019-01-22 21:28:26 1429

原创 MYSQL5.7.24 的安装问题-找不到my.ini

MYSQL5.7.24 的安装问题-找不到my.ini​ 今天在安装mysql5.7.24的时候,我用的是msi方式,安装成功后发现无法设置我的数据库编码格式。 网上有很多教程说在my.ini文件中设置,但是安装目录里面并没有my.ini。​ 然后想着自己创建这个文件 发现并没有用,搞了很长时间,发现my.ini存在一个隐藏的文件中 在C盘的programData这个文件里面,具体路径:C...

2019-01-22 21:27:50 805 1

原创 Exists、 In 、Not Exists、Not In 四种的执行机制区别

Exists、 In 、Not Exists、Not In 区别和效率​ Exists和in的基本工作原理就不说了可以看这篇博文:https://blog.csdn.net/qq_38238296/article/details/86601765​关于exists和in的效率问题​ 很多博客上说in适用于外表大内表小的情况,exists适用于外表小内表大的情况如果查询的两个表大小相当,那么...

2019-01-22 21:26:22 1415

原创 mysql多表之间的操作

mysql多表之间的操作1.多表之间的维护外键定义:外键是指引用另一个表中的一列或多列,被引用的列应该具有主键约束或唯一性约束,外键用于建立和加强两个表数据之间的连接。语法:ALTER TABLE 表名 ADD CONSTRAINT 外键名 FOREIGN KEY(外键字段名) REFERENCES 外表表名(主键字段名);删除外键:ALTER TABLE 表名 DROP FOREIGN...

2019-01-22 21:24:26 626

原创 浅析MYSQL基础

文章目录MYSQL基础详解1.数据库的基本操作2.表的基本操作2.1.创建表2.2.查看表2.3.修改表2.4.重命名表2.5.删除表3.数据的基本操作3.1插入数据3.2删除数据drop,truncate,delete三者之间的区别3.3更新数据3.4.查看数据1.别名查询2.运算查询3.条件查询4.模糊查询like5.排序查询order by6.聚合函数7.分组:group bymax函数和g...

2019-01-10 19:51:18 261

原创 相关子查询和嵌套子查询两者之间的区别

相关子查询和嵌套子查询两者之间的区别表的结构如下:mysql&gt; select * from product;+----+------+-------+-----+| id | name | price | num |+----+------+-------+-----+| 1 | 伊利 | 68 | 1 || 2 | 蒙牛 | 88 | 1 || 3...

2019-01-10 19:46:58 6904

转载 Mysql删除数据什么情况下会释放空间

Mysql删除数据什么情况下会释放空间删除数据几种情况以及是否释放磁盘空间1、drop table table_name 立刻释放磁盘空间 ,不管是 Innodb和MyISAM2、truncate table table_name 立刻释放磁盘空间 ,不管是 Innodb和MyISAM 。truncate table其实有点类似于drop table 然后create只不过这个create...

2019-01-10 19:44:42 1378

空空如也

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

TA关注的人

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