自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 问答 (4)
  • 收藏
  • 关注

原创 Explain详解与索引最佳实践

前面一章,我们学习了索引,了解了索引的底层数据结构。那接下来,肯定是要来根据mySql的存储,来对sql语句进行优化。一谈到优化,我们最常见的就是用Explain来进行Sql分析。

2024-06-15 15:44:25 264

原创 Mysql(一):深入理解Mysql索引底层数据结构与算法

众所众知,MySql的查询效率以及查询方式,基本上和索引息息相关,所以,我们一定要对MySql的索引有一个具体到数据底层上的认知。这一次也是借着整理的机会,和大家一起重新一下MySql的索引底层。各位看官可以各取所需,希望能够对大家有所帮助。一句话总结:索引是帮助MySQL高效获取数据的的。

2024-06-09 15:43:01 1191 2

原创 Spring 源码解读(五):@Conditional及其衍生扩展注解(5千字大章)

条件装配是Spring Boot一大特点,根据是否满足指定的条件来决定是否装配 Bean ,做到了动态灵活性,starter的自动配置类中就是使用@Conditional及其衍生扩展注解

2024-02-04 16:30:38 850

原创 Spring 源码解读(四):@SpringBootApplication使用及原理详解

Springboot 最核心的注解:@SpringBootApplication, 这也是SpringBoot自动装配相关所需依赖和配置的依仗。

2024-01-19 16:13:04 1232

原创 Spring 源码解读(三):@ComponentScan使用及原理详解

总结的来说,就是初始化了一个ClassPathBeanDefinitionScanner扫描器,根据@ComponentScan的属性,设置扫描器的属性,最后调用扫描器的doScan()方法执行真正的扫描工作。发现配置类LITE模式匹配规则里面并没有包含@ComponentScans注解,所以判断当前类不是配置类,自然不会再进行后面的相关注解解析了,这也就是上面多次使用@ComponentScan扫描注入不成功的问题。@ComponentScan 的定义,比起之前的两个注解,会稍微复杂一些。

2024-01-12 11:34:07 1330

原创 Spring 源码解读(二):@Import使用及原理详解

唯一的区别就是,2个参数的方法,只能手动的输入beanName,而3个参数的方法,可以利用BeanNameGenerator根据beanDefinition自动生成beanName。@Import 注解提供了类似 @Bean 注解的功能,向Spring容器中注入bean,也对应实现了与Spring XML中的元素相同的功能。注意,这里只能注入一个bean,所以只能实现一个方法进行注入,如果两个都是实现,前面的一个方法生效。而@Bean注入的默认为方法名,这也是两者的区别。我们定义几个类尝试一下。

2023-12-26 18:30:57 100

原创 Spring 源码解读(一)@Component和@Configuration的区别

Component在Spring中是代表LITE模式的配置注解,这种模式下的注解不会被Spring所代理,就是一个标准类,如果在这个类中有@Bean标注的方法,那么方法间的相互调用,其实就是普通Java类的方法的调用。@Configuration在Spring中是代表FULL模式的配置注解,这种模式下的类会被Spring所代理,那么在这个类中的@Bean方法的相互调用,就相当于调用了代理方法,那么在代理方法中会判断,是否调用getBean方法还是invokeSuper方法。

2023-12-25 15:28:08 1333

原创 Springboot14:集成Shiro

1、Shiro1.1、什么是Shiro?Shiro 是一个Java的安全(权限)框架Shiro 可以非常容易开发出足够的应用,其不仅可以用在JavaSE环境,也可以用在JavaEE环境Shiro 可以完成认证,授权,加密,会话管理,Web集成,缓存对比 Spring Security,可能没有 Spring Security 做的功能强大,但是在实际工作时可能并不需要那么复杂的东西,所以使用小而简单的 Shiro 就足够了1.2、基本功能Authentication:身份认证 / 登

2021-03-21 15:18:41 183

原创 ArrayList

面试的时候又说到这个,没事就整理了一下,有一些地方不是很清楚,但是大概也就是这么些知识点了1、是什么​ Array是实现原理就是数组(动态数组),容量能够动态的增长2、效率如何​ ArrayList不是线程安全的,所以效率比较高3、继承哪些类和实现哪些类​ ArrayList主要继承了AbstractList类,实现了List,RandomAccess,Cloneable,Serializable接口​ RandomAccess:他就是一个标志接口,支持快速随机访问。在Collections里

2021-03-19 15:51:58 143

转载 SpringBoot15:集成Swagger

Swagger简介前后端分离前端 -> 前端控制层、视图层伪造后端数据 ,json后端 -> 后端控制层、服务层、数据访问层前后端通过API进行交互前后端相对独立且松耦合产生的问题前后端集成,前端或者后端无法做到“及时协商,尽早解决”,最终导致问题集中爆发解决方案首先定义schema [ 计划的提纲 ],并实时跟踪最新的API,降低集成风险早些年:制定word计划Swagger号称世界上最流行的API框架Restful

2021-03-04 19:15:49 120 1

转载 SpringBoot13:集成SpringSecurity

这个我自己就简单的做了一下,可能还是秦疆老师说的比较好一点https://blog.csdn.net/qq_33369905/article/details/106647308?spm=1001.2014.3001.5501有一点要说一下,就是SpringSecurity有一些东西要去看源码才有,看文档没有等以后如果有用到了,有自己比较好的体会,再回来补...

2021-03-04 16:40:16 95 1

原创 SpringBoot 12:整合MyBatis

资料官方文档:http://mybatis.org/spring-boot-starter/mybatis-spring-boot-autoconfigure/Maven仓库地址:https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter自己去Maven找最新的。整合1、导入 MyBatis 所需要的依赖 org.mybatis.spring.boot mybatis

2021-03-04 16:01:47 121 1

转载 SpringBoot011:整合Druid

DruidDruid 是阿里巴巴开源平台上一个数据库连接池实现,结合了 C3P0、DBCP 等 DB 池的优点,同时加入了日志监控。这个也没什么好说的,都是死操作,直接看别人写的https://blog.csdn.net/qq_33369905/article/details/106647302?spm=1001.2014.3001.5501不过有一点,就是Springboot内置了Servlet容器时没有web.xml文件,所以使用 Spring Boot 的注册 Servlet 方式Servl

2021-03-04 15:49:43 76 1

原创 SpringBoot10:整合JDBC

SpringData简介对于数据访问层,无论是 SQL(关系型数据库) 还是 NOSQL(非关系型数据库),Spring Boot 底层都是采用 Spring Data 的方式进行统一处理。Spring Boot 底层都是采用 Spring Data 的方式进行统一处理各种数据库,Spring Data 也是 Spring 中与 Spring Boot、Spring Cloud 等齐名的知名项目。Sping Data 官网:https://spring.io/projects/spring-data

2021-03-03 22:03:01 138 1

转载 SpringBoot09:页面国际化

没什么好说的https://blog.csdn.net/qq_33369905/article/details/106647286?spm=1001.2014.3001.5501

2021-03-03 21:30:54 52 1

原创 SpringBoot08:MVC自动配置原理

官网阅读在进行项目编写前,我们还需要知道一个东西,就是SpringBoot对我们的SpringMVC还做了哪些配置,包括如何扩展,如何定制。只有把这些都搞清楚了,我们在之后使用才会更加得心应手。途径一:源码分析,途径二:官方文档Spring MVC Auto-configuration// Spring Boot为Spring MVC提供了自动配置,它可以很好地与大多数应用程序一起工作。Spring Boot provides auto-configuration for Spring MVC

2021-03-03 21:24:38 129 1

转载 SpringBoot07:Thymeleaf模板引擎

没什么好说的,这个东西就是看看官方文档自己可以去下载来看看但是其实我觉得查官方文档,还不如查百度来的快https://blog.csdn.net/qq_33369905/article/details/106647306?spm=1001.2014.3001.5501

2021-03-03 19:36:58 53 1

原创 SpringBoot06:Web开发静态资源处理

Web静态资源映射规则SpringBoot中,SpringMVC的web配置都在 WebMvcAutoConfiguration 这个配置类里面;我们可以去看看 WebMvcAutoConfigurationAdapter 中有很多配置方法;有一个方法:addResourceHandlers 添加资源处理@Overrideprotected void addResourceHandlers(ResourceHandlerRegistry registry) { super.addResource

2021-03-03 18:22:34 79 1

原创 SpringBoot05:自动配置原理

在哪里SpringBoot官方文档中有大量的配置,我们无法全部记住这是地址:https://docs.spring.io/spring-boot/docs/2.1.6.RELEASE/reference/htmlsingle/#common-application-properties但是我不建议你们去看,太多了,记不住啊!!!分析自动配置原理我们以HttpEncodingAutoConfiguration(Http编码自动配置)为例解释自动配置原理;//表示这是一个配置类,和以前编写的配置

2021-03-03 17:24:32 69 1

原创 SpringBoot04:yaml,JSR303数据校验及多环境切换

本来还要介绍一下,但是我觉得没有什么可讲的,还不如直接看别人写的,直接附上链接吧yamlhttps://blog.csdn.net/qq_33369905/article/details/106647300?spm=1001.2014.3001.5501JSR303数据校验及多环境切换https://blog.csdn.net/qq_33369905/article/details/106647295?spm=1001.2014.3001.5501总结笔记JSR-303 : @Validated

2021-03-03 16:33:44 107 1

原创 Springboot 03:运行原理

pom.xml父依赖spring-boot-dependencies:核心依赖在父工程中!我们在写或者引入一些Springboot依赖的时候,不需要制定版本,就因为有这些版本仓库在pom.xml找到版本号 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId>

2021-03-01 00:14:43 63

原创 Springboot 01:微服务架构

什么是微服务微服务是一个架构风格,他要求我们在开发一个应用的时候,这个应用必须构建成一系列小服务的组合;可以通过http的方式进行互通。要说微服务架构,想要说说我们的单体应用架构单体应用架构所谓单体应用架构(all in one)是指,我们将一个项目的中的所有应用服务都封装值一个应用中。好处显而易见,好开发测试,方便部署缺点也不少,不好维护,不好分工微服务架构看这两篇文章,我就不解释了,看原文原文:https://martinfowler.com/articles/microservices

2021-02-28 16:59:32 173

原创 SpringBoot 02:什么是SpringBoot

Springboot 学习路线接下来以这个图来学习Springboot 是什么回顾什么是SpringSpring是一个开源框架,2003 年兴起的一个轻量级的Java 开发框架,作者:Rod Johnson 。Spring是为了解决企业级应用开发的复杂性而创建的,简化开发。Spring是如何简化Java开发的为了降低Java开发的复杂性,Spring采用了以下4种关键策略:1、基于POJO的轻量级和最小侵入性编程,所有东西都是bean;2、通过IOC,依赖注入(DI)和面向接口

2021-02-28 16:30:55 93

原创 SpringMVC08:拦截器+文件上传下载

拦截器概述SpringMVC的处理器拦截器类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理。开发者可以自己定义一些拦截器来实现特定的功能。2、过滤器与拦截器的区别:拦截器是AOP思想的具体应用(自行复习)。过滤器servlet规范中的一部分,任何java web工程都可以使用在url-pattern中配置了/*之后,可以对所有要访问的资源进行拦截拦截器拦截器是SpringMVC框架自己的,只有使用了SpringMVC框架的工程才能使用

2021-01-10 18:51:08 105

原创 SpringMVC07:Ajax研究

简介1、AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。2、AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。3、Ajax 不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的Web应用程序的技术。4、在 2005 年,Google 通过其 Google Suggest 使 AJAX 变得流行起来。Google Suggest能够自动帮你完成搜索单词。5、Google Suggest 使用 A

2021-01-10 18:18:15 116

原创 SpringMVC06:Json交互处理

Json1、什么是JSON?JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式,目前使用特别广泛。采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。2、为什么要?json作为前后端的数据交换格式,如果你要用java开发后台,一定要掌握3、在 JavaScript 语言中,一切都是对象

2021-01-10 17:52:58 83

原创 SpringMVC05:整合SSM框架

在上一节中,我们了解了SpringMVC参数接收处理和结果跳转处理!现在我们来看看,如何集成SSM框架!完整项目的整合!强调:必须掌握!!!整合SSM环境要求环境:IDEAMySQL 8Tomcat 9Maven 3.6要求:需要熟练掌握MySQL数据库,Spring,JavaWeb及MyBatis知识,简单的前端知识;数据库环境创建一个存放书籍数据的数据库表CREATE DATABASE `ssmbuild`;USE `ssmbuild`;DROP TABLE IF E

2021-01-10 17:08:04 176

原创 SpringMVC04:数据处理及跳转

在上一节中,我们了解了控制器和Restful风格操作现在我们来看看SpringMVC参数接收处理和结果跳转处理吧!结果跳转方式ModelAndView(掌握)设置ModelAndView对象 , 根据view的名称 , 和视图解析器跳到指定的页面 .页面 : {视图解析器前缀} + viewName +{视图解析器后缀}<!-- 视图解析器 --><bean class="org.springframework.web.servlet.view.InternalResourc

2021-01-10 16:24:04 96

原创 SpringMVC03:RestFul和控制器

在上一节中,我们编写了我们的第一个SpringMVC程序!现在我们来看看里面的控制器和路径请求的具体内容吧!控制器Controller控制器复杂提供访问应用程序的行为,通常通过接口定义或注解定义两种方法实现。控制器负责解析用户的请求并将其转换为一个模型。在Spring MVC中一个控制器类可以包含多个方法在Spring MVC中,对于Controller的配置方式有很多种实现Controller接口Controller是一个接口,在org.springframework.

2021-01-10 15:46:18 94

原创 SpringMVC02:第一个MVC程序

在上一节中,我们讲解了 什么是SpringMVC以及它的执行原理!现在我们来看看如何快速使用SpringMVC编写我们的程序吧!上手就完事了配置版(比较复杂,正常我们也不可能这么去做,主要是要了解)1、新建一个Moudle , springmvc-02-hello , 添加web的支持!2、确定导入了SpringMVC 的依赖!3、配置web.xml , 注册DispatcherServlet<?xml version="1.0" encoding="UTF-8"?><

2021-01-09 13:09:58 63

原创 SpringMCV 学习01:什么是SpringMVC

回顾MVC什么是MVCMVC是模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范。是将业务逻辑、数据、显示分离的方法来组织代码。MVC主要作用是降低了视图与业务逻辑间的双向偶合。MVC不是一种设计模式,MVC是一种架构模式。当然不同的MVC存在差异。Model(模型):数据模型,提供要展示的数据,因此包含数据和行为,可以认为是领域模型或JavaBean组件(包含数据和行为),不过现在一般都分离开来:Value Object(数据.

2021-01-09 11:45:22 231

原创 Spring09:声明式事务

Spring09:声明式事务这个东西很重要,面试几乎必问,特别是我们在操作数据库的时候,这是我们一定要去关注的点,事务的概念,ACID,都是需要记住的,可以不要按着概念来,但是自己一定要理解。回顾事务事务在项目开发过程非常重要,涉及到数据的一致性的问题,不容马虎!事务管理是企业级应用程序开发中必备技术,用来确保数据的完整性和一致性。事务:就是把一系列的动作当成一个独立的工作单元,这些动作要么全部完成,要么全部不起作用。事务四个属性ACID原子性(atomicity)事务是

2020-12-27 16:39:46 97

原创 Spring08:整合MyBatis

Spring08:整合MyBatisMybatis在之前学的,现在回想起来也忘的差不多了,找个时间要重新学学总结一下了。。。整合MyBatis步骤1.导入相关jar包junit<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version></dependen

2020-12-27 15:50:23 87

原创 Spring07:AOP

Spring07:AOP上一篇说完了代理模式,接下来说说AOP概念AOP(Aspect Oriented Programming)意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。就相当于在原来的业务中加入一个业务。Aop

2020-12-26 13:47:09 94

原创 Spring 学习06:静态/动态代理模式

Spring 学习06:静态/动态代理模式代理模式学Spring的都知道,面试官必问的两个问题,第一个就是IOC,第二个就是AOP那代理是个什么东西啊???AOP的底层机制就是动态代理!代理模式:静态代理动态代理学习aop之前 , 我们要先了解一下代理模式!(盗个图)简单来说,你去租房,你就是客户,房东就是被代理对象,中介就是代理角色,帮房东去租房子,那房东是不是就不用去管了,是不是就可以解放出来,干自己的事了。还不明白??接着看静态代理抽象角色 : 一般使用接口

2020-12-24 21:25:14 78 1

原创 Spring 学习05:使用注解开发

Spring 学习05:使用注解开发使用注解开发使用注解开发,我们就可以不用写那么多东西在配置文件了,像一些简单的属性配置啊等等就可以直接通过注解来配置了,不过一些复杂的还是要写。。。说明1.在spring4之后,想要使用注解形式,必须得要引入aop的包2.在配置文件当中,还得要引入一个context约束<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/s

2020-12-24 17:04:40 55 2

原创 Spring 学习04:自动装配

Spring 学习04:自动装配Bean的自动装配自动装配说明自动装配是使用spring满足bean依赖的一种方法spring会在应用上下文中为某个bean寻找其依赖的bean。Spring中bean有三种装配机制,分别是:1.在xml中显式配置;2.在java中显式配置;3.隐式的bean发现机制和自动装配。在前面的几篇文章中,我们讲了很多的关于第一种的今天讲讲第三种:自动化的装配bean。Spring的自动装配需要从两个角度来实现,或者说是两个操作:1.组

2020-12-24 16:37:10 92

原创 Spring 学习03:依赖注入(DI)

Spring 学习03:依赖注入(DI)DI:Dependency Injection概念依赖注入(Dependency Injection,DI)。依赖 : 指Bean对象的创建依赖于容器 . Bean对象的依赖资源 .注入 : 指Bean对象所依赖的资源 , 由容器来设置和装配 .构造器注入在上一篇文章中我们讲了我们可以用有参的构造器注入属性,那么我们都知道,我们有很多类型的值,那么其他值要怎么注入呢,我相信很多的小伙伴都看到官方文档上面有很多,但是有点烦,因为都是

2020-12-23 21:04:01 95

原创 Spring 学习02:上手Spring

Spring 学习02:上手Spring上一篇文章介绍了Spring,那接下来肯定就要上手了Hello Spring:导入jar包在 pow.xml 导入jar包,spring 需要导入commons-logging进行日志记录 。 我们利用maven , 他会自动下载对应的依赖项 .junit用于测试类 <dependency> <groupId>org.springframework</groupId> <artifactId&

2020-12-23 20:01:26 76

原创 Spring 学习01:概述和IOC简介

Spring 学习01:概述和IOC简介学习了一段时间的Spring,决定进行一个自我总结,防止自己忘了,顺便也是和大家交流一下,看有没有需要补充的。第一次写博客。。。有点小激动Spring概述:1.Spring:春天,给整个行业带来春天,蓬勃发展2.2002年,Rod Jahnson首次推出了Spring框架雏形interface21框架(前身)3.2004年3月24日,Spring框架以interface21框架为基础,经过重新设计,发布了1.0正式版。4.很难想象Rod Johnson的

2020-12-23 16:33:41 116 1

空空如也

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

TA关注的人

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