![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
源码分析
文章平均质量分 62
chenkangck50
这个作者很懒,什么都没留下…
展开
-
设计模式-行为模式-观察者模式 以及java源码实现以及spring 监听机制的实现
观察者模式:observer pattern对象存在一对多关系,当一个对象被修改,则自动通知其他依赖它的对象关键代码:在抽象类中有ArrayList 存放观察者们subjectobserverclientpackage com.example.demo.designpattern.oberver;import java.util.ArrayList;import java.util.List;/**观察者模式 被观察的对象*/public class Subject {原创 2022-02-10 16:22:58 · 503 阅读 · 0 评论 -
设计模式-建造模式-抽象工厂模式
package com.example.demo.designpattern.abstractFactory;public interface Color {void fill();}package com.example.demo.designpattern.abstractFactory;public class Red implements Color{@Overridepublic void fill() {System.out.println(“填充红色”);}}packag原创 2022-02-09 18:09:02 · 182 阅读 · 0 评论 -
设计模式-建造模式-工厂模式
package com.example.demo.designpattern.factory;public interface Shape {void draw();}package com.example.demo.designpattern.factory;public class Circle implements Shape{@Overridepublic void draw() {System.out.println(“画圆形”);}}package com.example.原创 2022-02-09 18:08:09 · 288 阅读 · 0 评论 -
设计模式:springmvc适配器模式源码分析
适配器模式:基本概念适配器模式(Adapter Pattern):将某个类的接口转换成客户端期望的另一个接口,让原本因接口不匹配不能一起工作的两个类可以协同工作。其别名为包装器(Wrapper),从用户的角度看不到被适配者,用户调用适配器转化出来的目标接口方法,适配器再调用被适配者的相关接口方法;;适配器模式属于结构型模式;主要分为三类:类适配器模式、对象适配器模式、接口适配器模式;适配器的4个角色1、目标(Target)定义一个客户端使用的特定接口。2、客户端(Client)使用目标接口原创 2022-01-26 11:48:23 · 910 阅读 · 0 评论 -
spring mvc的执行流程源码分析
前面介绍了http请求如何达到servlet的,下面分析下dispatcherServlet就知道spring mvc的执行流程了,还是从上面的 doDispatch开始protected void doDispatch(HttpServletRequest request, HttpServletResponse response) throws Exception { HttpServletRequest processedRequest = request; HandlerExec原创 2022-01-15 16:39:33 · 130 阅读 · 0 评论 -
spring mvc的拦截器源码分析
上面说了dispatcher servlet的执行流程源码,现在分析下拦截器的源码首先看下自己的的interceptor ,然后还需要将inerceptor注册到WebMvcConfigurer中实现package com.example.demo.config;import org.springframework.context.annotation.Configuration;import org.springframework.lang.Nullable;import org.sprin原创 2022-01-15 16:24:54 · 1013 阅读 · 0 评论 -
http请求是如何到达dispatcherServlet 源码解析
首先spring boot 内置了 tomcat服务器:‘<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency>当服务启动tomcat开启监听,他监听了端口,请求过来后,根据url等信息,确定要将请求交给哪个servlet去处理;原创 2022-01-10 15:57:00 · 1017 阅读 · 0 评论 -
springboot的自动装配源码
再走下springboot的自动装配原理:package org.jeecg.monitor;import de.codecentric.boot.admin.server.config.EnableAdminServer;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;/** * 监控服务 */@Sp原创 2021-12-27 11:11:14 · 344 阅读 · 0 评论 -
java System源码分析
System首先编译期间开始初始化,初始化方法在initializeSystemClass中类中主要一下几个功能(1)系统信息的访问,如外部属性和环境变量等//可以打印出所有system的参数,也可以添加参数进系统中 System.setProperty("user.name","你好"); System.getProperties().forEach((k,v)->{ System.out.println(k+" "+v);原创 2021-12-09 20:26:53 · 568 阅读 · 0 评论 -
spring缓存注解源码分析:@Cacheable @CacheEvict @CachePut
解决存入redis乱码package com.example.demo.kang.config;import org.springframework.beans.factory.annotation.Value;import org.springframework.boot.autoconfigure.cache.CacheProperties;import org.springframework.context.annotation.Bean;import org.springframewor原创 2021-12-07 17:07:38 · 1584 阅读 · 0 评论 -
java8 hashMap 底层原理
hashMap 底层的数据结构就是哈希表jdk1.7 底层就是: 数组+链表,并且插入链表采用头部插入法jdk1.8 底层结构为: 数组+链表+红黑树(源码中数组长度大于64且链表长度大于8 就把链表转成红黑树,链表长度小于6就把红黑树转成链表),插入链表采用尾部插入法(因为要遍历链表,所以直接插入尾部)1.7不看了,直接分析下1.8的源码(其实1.7看起来更好懂点)因为hashMap的数据结构是哈希表,所以一定会有数组和链表声明数组(之前1.7取名是Entry来着) /** *原创 2021-02-21 22:57:13 · 362 阅读 · 1 评论