![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
架构师
文章平均质量分 66
Elsa~
这个作者很懒,什么都没留下…
展开
-
Spring源码分析+图解--Spring如何创建Bean对象(Bean的生命周期)
背景我们一般在做Spring项目的时候,对于用户创建的类,我们想要让Spring容器管理,我们可以通过xml配置文件或注解的方式告诉Spring哪些类需要容器管理。xml方式:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instanc原创 2021-09-13 09:53:40 · 473 阅读 · 5 评论 -
Spring源码分析+图解--Spring如何解决循环依赖的,为什么要用三级缓存
宏观背景在了解循环依赖之前,我们先宏观的温习一下bean生命周期,即Spring中Bean的创建过程。看过spring源码的应该都有注意到BeanFactory中有一段长长的注释,是Spring官方给我们提供的,推荐的Bean的生命周期的顺序。 * <p>Bean factory implementations should support the standard bean lifecycle interfaces * as far as possible. The full set原创 2021-09-12 16:42:52 · 338 阅读 · 4 评论 -
springmvc处理流程(处理器映射器,处理器适配器,视图解析器)
宏观的运行流程:1、用户发送请求至前端控制器DispatcherServlet2、DispatcherServlet收到请求调用HandlerMapping处理器映射器。3、处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。4、DispatcherServlet通过HandlerAdapter处理器适配器调用处理器5、执行处理器(Controller,也叫后端控制器)。6、Controller执行完成返回M..原创 2021-04-25 10:39:38 · 875 阅读 · 7 评论 -
SpringBoot自动装配原理
一、SpringBoot的自动配置原理不知道大家第一次搭SpringBoot环境的时候,有没有觉得非常简单。无须各种的配置文件,无须各种繁杂的pom坐标,一个main方法,就能run起来了。与其他框架整合也贼方便,使用EnableXXXXX注解就可以搞起来了!所以今天来讲讲SpringBoot是如何实现自动配置的~1.1三个重要的注解我们可以发现,在使用main()启动SpringBoot的时候,只有一个注解@SpringBootApplication我们可以点击进去@Spri.转载 2021-04-04 21:04:09 · 774 阅读 · 5 评论 -
lombok注解介绍
一、在讲解注解之前,先站在权威的角度看Lombok。lombok注解文档lombok官网下载二、Lombok的作用是什么?它产生的背景是什么?Project Lombok makes java a spicier language by adding 'handlers' that know how to build and compile simple, boilerplate-free, not-quite-java code.官网解释:大体意思是通过添加一些注解,可以让java变得原创 2021-03-13 19:11:45 · 333 阅读 · 5 评论 -
vue项目同时被localhost和ip地址访问的方法
既可以用ip访问,也可以用localhost访问的方法:1.package.json中,“dev”: “webpack-dev-server --inline --progress --config build/webpack.dev.conf.js”,后面加上 --host 0.0.0.02. index.js中, host: ‘IP号’Ps: webpack.dev.conf.js不改变, const HOST = process.env.HOST 这个将会决定running here的地址原创 2021-02-22 14:11:41 · 744 阅读 · 9 评论 -
设计模式七大原则的演变
设计原则一、单一职责(高内聚,低耦合的指导方针)为什么要有单一职责?复用角度:一个类承担的职责越多,被复用的可能性就越小。变化角度:当其中一个职责发生吧变化,可能会影响到其他职责的运作。案例分析getConnection()方法用于连接数据库,findCustomers()方法用户查询所有的客户信息,createChart()用户创建图表,displayChart()用于显示图表。一个CustomerDataChart类具有四个职能,而这四个职能的变化都会引起CustomerDataCh原创 2021-02-18 14:45:15 · 381 阅读 · 8 评论 -
类加载器
1、class文件分析https://zhuanlan.zhihu.com/p/814003662、符号引用,直接引用https://blog.csdn.net/luzhensmart/article/details/82627897?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.control&depth_1-utm_source=distribute.pc_r原创 2021-02-10 14:03:57 · 160 阅读 · 8 评论 -
函数式接口
1、为什么要面向接口编程,它有什么好处?拓展性强,可以动态的更改实现类而不用改动代码。2、jdk1.8前后的接口变化jdk1.8以前的特性:1、可以有属性,但属性为常量。2、可以有方法,但方法必须是抽象方法或者静态方法。可以写静态方法的原因是:接口也是类,具有类的属性和方法。不可以写一般方法的原因是:接口不可以new,即没有对象,所以就没有对象所具有的一般方法。jdk1.8以后的特性:1、可以写默认方法,并且默认方法有方法体。子类可以继承,也可以重写。3、函数式接口,Lambda表达式原创 2021-02-07 19:14:55 · 203 阅读 · 6 评论 -
动态代理之cglib与jdk宏观比较
1、cglib与jdk宏观比较2、三条主线对比1、就B这条线上来讲:我会选择以jdk的形式来创建代理类。因为它是基于接口的,耦合性较低。而cglib的代理类是通过继承被代理类得来的,并且被代理类中的final方法是无法进行代理的。2、就授权这条线来讲:我会选择jdk的形式来授权。jdk1.8以前cglib的授权速度的确比jdk的授权要快,因为jdk采用的是反射的方式调取的B中的方法,而cglib采用的是FastClass机制通过索引来直接定位到B的方法,实质是通过回调函数来调取B中的方法。但在j原创 2021-01-29 19:22:45 · 452 阅读 · 17 评论 -
深度解析类加载机制
你是否真的理解Java的类加载机制?点进文章的盆友不如先来做一道非常常见的面试题,如果你能做出来,可能你早已掌握并理解了Java的类加载机制,若结果出乎你的意料,那就很有必要来了解了解Java的类加载机制了。代码如下package com.jvm.classloader;class Father2{public static String strFather="HelloJVM_Father";static{System.out.println("Father静态代码块");}}class.转载 2021-01-22 16:20:31 · 264 阅读 · 8 评论 -
为什么会有动态代理
【一、代理模式/静态代理】代理:为其他对象提供一种代理以控制对这个对象的访问。对应的代理业务图:注(以下关于“代理对象”的图标采用“←”标识)这里我们将B看做是“被代理对象”,箭头←看做是“代理对象”。代理模式的uml图:对应的代码展示:public class Client { public static void main(String[] args) { Proxy daili=new Proxy(); dail原创 2021-01-15 21:37:42 · 289 阅读 · 9 评论 -
java.sql.SQLException: The server time zone value is unrecognized
遇到这个问题的小伙伴们不用慌,这个是时区配置出现了问题,解决办法如下:以前配置文件中的url值修改后的配置文件url值:加上一个以下代码,其中&表示连接符的意思。mybatis?serverTimezone=GMT%2B8&以上配置中serverTimezone表示时区;userSSL表示安全设置;userUnicoode表示为unicode编码;characterEncoding=utf8表示为utf-8编码;...原创 2020-10-27 16:21:57 · 444 阅读 · 10 评论 -
IDEA连接mysql数据库---步骤详解
我们有时候在写代码的时候想直接在IDEA中查看数据表中的字段,如何快速查询呢,在IDEA中直接连接数据库吧,步骤如下:第一步:在IDEA中找到MySQL第二步:配置数据源和驱动第三步:可能出现的问题第四步:其实就是时间格式的问题,解决该问题有两种方法方法一:通过修改Advanced里面的参数方法二:修改配置中的url路径第五步:再次测试,成功第六步:IDEA中展示的效果...原创 2020-10-21 19:51:25 · 1745 阅读 · 8 评论