![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
源码分析
文章平均质量分 63
spring,springmvc、map、list、等源码分析
兮家小二
傻傻的小男孩,qq:1720696548 wx:1720696548
展开
-
基于装饰模式+ aop+ jvm-map + redis +注解设计一级 +二级缓存框架
缓存描述1、多级缓存基本概念在实际开发项目,为了减少数据库的访问压力,我们都会将数据缓存到内存中比如:Redis(分布式缓存)、EHCHE(JVM内置缓存).例如在早起中,项目比较小可能不会使用Redis做为缓存,使用JVM内置的缓存框架,项目比较大的时候开始采用Redis分布式缓存框架,这时候需要设计一级与二级缓存。2、装饰模式基本的概念不改变原有代码的基础之上,新增附加功能一、 代码结构二、具体代码1、自定义注解/** * 自定义缓存注解 */@Target({Eleme原创 2020-09-01 00:11:39 · 272 阅读 · 0 评论 -
java jdk动态代理 + cglib动态代理 / 及 @Async异步注解失效问题
什么是代理模式代理模式主要对我们方法执行之前与之后实现增强代理模式应用场景1.日志的采集2.权限控制3.实现aop4.Mybatis mapper5.Spring的事务6.全局捕获异常7.Rpc远程调用接口8.代理数据源Jdk与Cglib动态代理的区别1.Jdk动态代理利用反射技术生成匿名的代理类走 InvokeHandler回调方法实现增强,同时也是一种基于接口的方式实现代理。2.Cglib动态代理利用 asm字节码技术生成一个子类 覆盖其中的方法实现增强,同时采用fastCla原创 2020-08-30 22:29:06 · 1927 阅读 · 0 评论 -
手写 HashMap 集合基于数组 + 单链表
实现功能1、put 方法2、get 方法3、扩容机制Entry<K, V> 为数据 Node节点,单链表方法,index重复添加数据到链表最前方接口package map17;/** * 纯手写Map接口<br> */public interface ExtMap<K, V> { /** * TODO 向集合中...原创 2019-11-30 13:20:33 · 207 阅读 · 0 评论 -
基于Arraylist 或 LinkedList 手写 HashMap 集合
只做演示,不建议使用一、Map存储对象/** * TODO Map存储对象 * @author 王松 * @date 2019/11/28 0028 11:54 */class Entry<Key, Value> { /** * hashMap集合存储的key */ Key key; /** * hashMap集合...原创 2019-11-28 12:16:45 · 225 阅读 · 0 评论 -
手写 LinkedList 双链表集合
双链表结构1、每一个保存的数据等于一个节点2、每一个节点都是一个对象3、节点对象包括,保存数据,上一个节点prev,下一个节点next实现功能1、add 最后添加节点数据2、push 最前添加节点数据3、get 索引查询4、remove 索引删除5、size 获取长度实现代码package Link...原创 2019-11-28 10:22:41 · 181 阅读 · 0 评论 -
手写 ArrayList 集合
—ArrayList 采用数组实现包含功能:1、最后添加对象/内容2、指定索引添加3、修改指定索引 对象/内容4、根据 对象/内容 删除5、根据索引删除6、根据索引获取对象/内容7、获取集合长度8、自动扩容接口public interface List<E> { public void add(E object); //添加...原创 2019-11-19 11:48:21 · 219 阅读 · 0 评论 -
手写 springMvc 框架,实现 @Controller,@RequestMapping
一、springMvc 了解1、springMvc 执行流程 ⑴ 用户发送请求至前端控制器DispatcherServlet ⑵ DispatcherServlet收到请求调用HandlerMapping处理器映射器。 ⑶ 处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。 ⑷ D...原创 2019-10-28 20:18:38 · 335 阅读 · 0 评论 -
手写 springIoc 注解版 ,实现@Service (beng),@Resource (依赖注入)
手写springIoc 注解版代码demo https://pan.baidu.com/s/1jyvLMDrg_bfpKmhtrTTZSQ 提取码:5ju1代码目录结构1、pom.xml <dependencies> <!-- https://mvnrepository.com/artifact/commons-lang/commons-lang --...原创 2019-10-27 10:21:28 · 724 阅读 · 0 评论 -
手写 spring 事务框架-注解版,基于aop+反射+自定义注解
自定义注解说明: https://blog.csdn.net/qq_41463655/article/details/1026400631、pom.xml<dependencies> <!-- 引入Spring-AOP等相关Jar --> <dependency> <groupId>org.springframework</g...原创 2019-10-28 20:29:52 · 501 阅读 · 0 评论 -
自定义注解 ,写框架必备前提
Jdk1.5新增新技术,注解。很多框架为了简化代码,都会提供有些注解。可以理解为插件,是代码级别的插件,在类的方法上写:@XXX,就是在代码上插入了一个插件。注解不会也不能影响代码的实际逻辑,仅仅起到辅助性的作用。注解分类:内置注解(也成为元注解 jdk 自带注解)、自定义注解(Spring框架)jdk 常见自带注解说明(1) @SuppressWarnings 在javac编...原创 2019-10-19 16:45:52 · 211 阅读 · 0 评论 -
手写 spring 事务,基于aop ,sprongAop 说明及使用
一、原理说明1、什么是AOP编程AOP: Aspect Oriented Programming 面向切面编程。面向切面编程(也叫面向方面):Aspect Oriented Programming(AOP),是目前软件开发中的一个热点。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。AOP是OOP的延续,是(A...原创 2019-10-19 11:49:09 · 208 阅读 · 0 评论 -
java - 自定义缓存 / 简单版session
缓存实体类package com.example.springbootcooket.cache;/** * * @classDesc: 功能描述:(缓存实体类) */public class Cache { // key private String key; // 值 private Object value; //有效期 private Long timeout...原创 2019-08-31 11:50:03 · 1177 阅读 · 0 评论 -
手写ORM框架映射,实现类似于 JPA,hibernate 的自动生成sql功能
本篇重点:使用注解自动生成sql语句,仿ORM技术Jdk1.5新增新技术,注解。很多框架为了简化代码,都会提供有些注解。可以理解为插件,是代码级别的插件,在类的方法上写:@XXX,就是在代码上插入了一个插件。注解不会也不能影响代码的实际逻辑,仅仅起到辅助性的作用。注解分类:内置注解(也成为元注解 jdk 自带注解)、自定义注解(Spring框架)jdk 常见自带注解(1) @...原创 2019-04-21 21:43:34 · 614 阅读 · 0 评论 -
手写 springIOC 框架 xml方式
1.使用beanId查找配置文件中的bean。2.获取对应bean中的classpath配置3.使用java反射机制实体化对象项目目录UserEntity 实体类package cn.ws.xdy;public class UserEntity { private String userId; private String userName; public String...原创 2019-04-21 11:56:47 · 377 阅读 · 0 评论