Jesse' Notes

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

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需要依赖另一个类的某些实现,那么我们需要在当前类对依...

微信扫码登录过程

打开网页版微信,可以看到如下的页面: 解析出来 1 https://weixin.qq.com/x/4ZbMwJZkD_wfL9Lwu3jX 用户 A 访问微信网页版,微信服务器为这个会话生成一个全局唯一的 ID,上面的 URL 中 4ZbMwJZkD_wfL9Lwu3jX 就是这个 ID,此时系统并不知道访问者是谁。 用户A打开自己的手机微信并扫描这个二维码,并提示用户是否确...

RedLock实现分布式锁

分布式啊啊啊啊

参考:RedisDoc 普通实现 之前学到的Redis实现分布式锁是setnx+lua,和set key value px milliseconds nx 1 2 3 4 5 6 7 8 9 - 获取锁(unique_value是唯一的可以使是UUID等) SET resource_name unique_value NX PX 30000 - 释放锁(lua脚本中,一定要比较value...