- 博客(16)
- 资源 (1)
- 收藏
- 关注
原创 -spring-如何利用spring对filter中新增的属性进行封装
问题背景:公司在接收其他平台数据的时候,走的是restful api接口,但是有两个特殊要求。需要对整个业务参数进行加密开发的接口需要 提供swagger ui post请求 入参示例如下业务入参如下{ "token":"accessToken", "securityKey":"ss212313", "data": { "IMEI":"123", "state":"off" }}实际传参则是直接将data 中的业务数据整块加密{ "token":"
2020-05-31 16:23:20
433
1
原创 静态代理、动态代理
文章目录静态代理动态代理静态代理/** * 接口 */public interface IUserDao { void save();}/** * 接口实现 * 目标对象 */public class UserDao implements IUserDao { public void save() { System.out.println("...
2019-04-24 14:13:08
181
原创 Tomcat源码八:Session
文章目录之前在FormAuthenticator 处有个 Session之前在FormAuthenticator 处有个 Session
2019-04-16 10:25:15
342
原创 Tomcat源码番外篇:Selector 、SelectionKey、NIO补充
本篇笔记的目的是:补充Selector基础不够牢固的问题Selector 选择器 分析Selector 键集键集已选择键集已取消键集通过关闭某个键的通道或者是调用该键的 cancel 方法来取消键,取消的键将被添加到已取消键集中。已取消键集中的键,在下一次“选择”(select())操作期间将注销该键的通道,而在注销时该键将从所有选择器的键集(键集、已选择键集、已取消键集)中...
2019-04-11 15:45:56
502
原创 Tomcat源码五:读取、解析、封装一个请求
前一篇 到了 Http11NioProcessor 的process一个SocketWrapper(就是KeyAttachment实例)读取数据======================================================start 此段也可以不了解,直接通过debug,一步一步走下去,不跨线程不影响理解Http11NioProcessor 继承了 Abst...
2019-04-11 15:44:37
271
原创 Tomcat源码四:Tomcat之NIO监听端口、建立连接
下面是Server容器部分模型。Nio请求重点关注黑框中的部分。对象结构是 connect对象中包含了一个protocolHandler[Http11NioProtocol] 的实例。protocolHandler[Http11NioProtocol] 中包含了 endpoint[NioEndPoint] 实例endpoint[NioEndPoint] 包含了 &nbsp...
2019-04-09 19:52:48
605
原创 Tomcat源码三:发布app
app的发布 在 StandardEngine[Catalina].StandardHost[localhost] 的start方法中发布的tomcat 容器部分结构图意思为StandardService 容器中有一个 StandardEngine[Catalina] 的容器StandardEngine[Catalina] 容器中有个 StandardEngine[Catalina].St...
2019-04-09 19:52:19
298
原创 Tomcat源码一:启动Tomcat、解析xml
下载Tomcat github地址下载通道启动:通过 启动类 Bootstrap中的main方法启动启动过程:之解析xml的过程main方法中调用 load方法,load方法中通过反射,调用Catalina 类中的load方法Catalina 中的load 方法 的解析创建 Digester(消化器),里面包含解析xml的rules(规则)通过digester 解析xml,...
2019-04-09 19:50:58
468
原创 TreeSet、排序集合、自定义排序
TreeSet set = new TreeSet(); set.comparator(); set.add(10); set.add(5); set.add(8); set.add(100); set.add(-12); Iterator it = set.iterator(); while (it.hasNext()) { int str = (int...
2019-01-18 16:46:58
250
原创 Selector 选择器 分析
【整理自jdk1.7】选择器选择器中维护了三个键集(键值对,可选择通道到选择器的注册) 键集:所有注册到此选择器的通道都保存在此集合中 已选择键集:即前一次选择操作到本次选择期间,检测每个键的通道是否已经至少为该键的相关操作集所标识的一个操作准备就绪(即监听每一个通道的所有操作标识中,只要有一个是准备就绪状态,就把它添加到此集合中)。已选择键集始终是键集的一个子集 已取消键集:是已被取...
2019-01-18 16:43:31
121
原创 基于NIO的socket通信
普通的socket通信是ServerSocket 和SocketNIO的Socket是ServerSocketChannel和SocketChannel我们知道ServerSocket 和 Socket是阻塞的而ServerSocketChannel 和 SocketChannel 是否阻塞可以进行设置。------ configureBlocking(false) ----如果不...
2019-01-18 16:38:31
4762
1
原创 HashMap源码
核心属性HashMap的设计思想:HashMap也叫散列表。由数组和线性链表组成。存储数据的核心是一个 Entry[] 的table数组。线性链表先看HashMap的一个内部类Entry Entry<K,V> implements Map.Entry<K,V> { final K key; V value; E...
2018-11-28 23:18:45
124
原创 ConcurrentLinkedQueue 源码
ConcurrentLinkedQueue:无界非阻塞线性安全的队列无界:相比 LinkedBlockingQueue有边界,默认为Integer.MAX_VALUE,而且有带初始化容器大小的含参数构造器。ConcurrentLinkedQueue没有边界...
2018-11-28 22:56:44
627
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人