Jesse' Notes

我干了什么 究竟拿时间换了什么

SpringBean生命周期

读Spring源码

看下ClassPathXmlApplicationContext的构造方法 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 public class ClassPathXmlApplicationContext extends AbstractXmlApplicationContext { private Resource[] con...

SpringAOP源码浅析

读Spring源码

[TOC] 前言 ​ IOC初始化的时候会把一个个的Bean解析成BeanDefinition,并把它放到容器中的ConcurrentHashMap里面。然后当我们需要某个bean的时候,可以通过getBean的方法获取实例(大部分是依赖注入不需要手动调用)。getBean方法里面使用了BeanPostProcessor这个接口 1 2 3 4 5 6 7 8 9 public int...

SpringIOC(三) Bean加载进容器

《Spring揭秘》学习笔记

[TOC] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ClassPathResource resource = new ClassPathResource("bean.xml"); //根据 Xml 配置文件创建 Resource 资源对象。ClassPathResource 是 Resource 接口的子类,bean.xml 文件中的内容是我...

动态代理

设计模式

[TOC] Java动态代理机制 1.静态代理 代理模式上,基本上有Subject角色,RealSubject角色,Proxy角色。 Subject:负责定义RealSubject和Proxy角色应该实现的接口; RealSubject:用来真正完成业务服务功能; Proxy:负责将自身的Request请求,调用realsubject 对应的request功能来实现业务功能,自己不真...

SpringIOC(二) 加载资源

Spring源码学习

[TOC] 资源的定义 org.springframework.core.io.Resource 是 Spring 框架所有资源的抽象和访问接口,继承自 org.springframework.core.io.InputStreamSource接口。作为所有资源的统一抽象,Source 定义了一些通用的方法。其子类AbstractResource提供了默认的实现定义如下: 1 2 ...

SpringIOC(一) 体系结构

spring源码学习

总览 Resource 模块 Resource,对资源的抽象,它的每一个实现类都代表了一种资源的访问策略,如ClasspathResource 、 URLResource ,FileSystemResource 等。 有了资源,就应该有资源加载,Spring 利用 ResourceLoader 来进行统一资源加载,类图如下: BeanFactory 模块 BeanFactory 是一...

Redis的雪崩、穿透、热点数据优化

《Redis开发与运维》节选

Redis开发与运维节选 [TOC] 一、缓存穿透预防及优化 1、何为穿透 缓存穿透是指查询一个根本不存在的数据,缓存层和存储层都不会命中,但是出于容错的考虑,如果从存储层查不到数据则不写入缓存层 1.缓存层不命中 2.存储层不命中,所以不将空结果写回缓存 3.返回空结果 缓存穿透将导致不存在的数据每次请求都要到存储层去查询,失去了缓存保护后端存储的意义 缓存穿透问题可能...

There is no getter for property named 'departId' in 'class java.lang.Integer'异常

今天遇到的报错 There is no getter for property named 'departId' in 'class java.lang.Integer' 代码重现如下: mapper接口: 1 2 3 4 5 6 7 8 public interface DistributeMapper { List<DistributePO> queryOtherD...

springboot 配置Druid多数据源

在单数据源的情况下,Spring Boot的配置非常简单,只需要在application.yml文件中配置连接参数即可。但是往往随着业务量发展,我们通常会进行数据库拆分或是引入其他数据库,从而我们需要配置多个数据源, 配置文件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 spring: autoconfigure...

IOC手动实现

spring源码学习

IOC(Inversion of Control) Inversion of Control即控制反转,其意思是将我们之前由客户端代码来创建的对象交由IOC容器来进行控制,对象的创建,初始化以及后面的管理都由IOC完成。 解耦:IOC的出现解决了类于类之间的耦合,我们在Web开发的Servlet时代,如果一个Servlet需要依赖另一个类的某些实现,那么我们需要在当前类对依...