框架源码和设计模式
文章平均质量分 64
框架源码解读和记录 , 设计模式示例代码学习
小杆子314
程序员一枚,在职做java后端开发,没事喜欢学习计算机软件相关的知识,下班和闲暇时间喜欢写博客
展开
-
springboot中aop的代理模式
Spring 中的 AOP,有接口就用 JDK 动态代理,没有接口就用 Cglib 动态代理。Spring Boot 中的 AOP,2.0 之前和 Spring 一样;2.0 之后首选 Cglib 动态代理,如果用户想要使用 JDK 动态代理,需要自己手动配置。原创 2022-11-05 14:04:33 · 1859 阅读 · 1 评论 -
springboot系统属性配置会覆盖自定义属性配置
无法获取正确的自定义属性的值。原创 2022-10-29 04:56:34 · 571 阅读 · 0 评论 -
spring中监听器的使用
1.自定义监听器类实现 ApplicationListener 接口} }2.spring容器注册自定义监听器} }3.测试} }4.控制台打印1.自定义事件实现 ApplicationEvent 接口/***} }2.自定义监听器触发自定义事件} }注意事项3.注册监听器} }4.发布事件参考 spring 源码发布事件的方法自定义触发事件ac . publishEvent(new MyEnvent("我自定义的注册事件"));5.测试。原创 2022-10-29 00:10:06 · 889 阅读 · 0 评论 -
自定义mybatis插件实现sql日志打印
官网的关键信息参考文档官方文档MyBatis 允许你在映射语句执行过程中的某一点进行拦截调用。原创 2022-10-28 22:28:39 · 2932 阅读 · 2 评论 -
springboot配置文件自定义为json格式
/这个方法表明这个类支持解析以json结尾的配置文件 return new String [ ] {"json" };//将文件内容读到 ByteBuffer 中 readableByteChannel . read(byteBuffer);//将读出来的字节转换成字符串 String content = new String(byteBuffer . array());原创 2022-10-27 14:21:39 · 2520 阅读 · 0 评论 -
spring中@ImportResource注解的使用
关键字 XmlBeanDefinitionReader , 说明这个主机导入的配置文件 , 相当于 spring 的核心配置文件类似于: spring创建xml类型的上下文代码作用:springboot是基于javaConfig思想和注解 , 所以需要兼容spring的配置文件 , 我们可以使用该注解。原创 2022-10-26 17:15:13 · 916 阅读 · 0 评论 -
spring和springboot相关总结(tmp)
1.xml bean4.@Import直接引入8.FacytoryBean --> getObject 方法。原创 2022-10-23 23:35:01 · 212 阅读 · 0 评论 -
spring5上下文对象创建方式
测试环境使用的是 springboot 项目 , 没有 web 依赖原创 2022-09-19 21:45:17 · 304 阅读 · 0 评论 -
springboot源码-自定义监听事件
***自定义监听器*1.实现ApplicationListener接口,在泛型中实行要监听的事件类型*如果事件类型是ApplicationEvent,则表示监听所有事件*2.需要吧监听器在spring.factories文件中红配置}}System.out.println("MyEvent----->自定义事件");}}}}//发布事件ac.publishEvent(newMyEvent(newObject()));...原创 2022-07-23 23:50:43 · 293 阅读 · 0 评论 -
设计模式-工厂模式(简单工厂和抽象工厂区别)
参考网址:前置说明:以上图参考了文章地址缺点优点一个产品族中的多个对象被设计成一起工作时,它能保证客户端始终只使用同一个产品族中的对象(将一个系列的产品统一一起创建);一系列相关产品对象(属于同一产品族)一起创建时需要大量的重复代码;一系列相关产品对象(属于同一产品族)一起创建时需要大量的重复代码;提供一个产品类的库,所有的产品以同样的接口出现,从而使得客户端不依赖于具体的实现;...原创 2022-06-21 16:56:28 · 88 阅读 · 0 评论 -
SpringSecurity源码-过滤器
UsernamePasswordAuthenticationFilter:是我们最常用的用户名和密码认证方式的主要处理类,构造了一个UsernamePasswordAuthenticationToken对象实现类,将用请求信息封装为AuthenticationBasicAuthenticationFilter…:将UsernamePasswordAuthenticationFilter的实现类UsernamePasswordAuthenticationToken封装成的 Authentication进行登录原创 2022-06-21 10:56:14 · 181 阅读 · 0 评论 -
设计模式-门面模式
参考文档设计模式之禅流程图类图举例生活中举例的案例写信步骤1.写信的内容2.写信封3.把信放到信封4.邮递具体实现过程自己实现邮局“Hello,It’s me,do you know who I am? I’m your old lover. I’d like to…”;hellRoadPostOffice.sendLetter(context, address);}}......原创 2022-06-19 14:20:49 · 317 阅读 · 0 评论 -
jvm基础知识
1原创 2022-06-15 11:01:16 · 95 阅读 · 0 评论 -
springmvc执行流程
1原创 2022-06-15 10:37:17 · 80 阅读 · 0 评论 -
spring生命周期大体流程图
说明:基于 maven 构建项目进行测试2.测试mybatismybatis-config.xml测试 mybatis3.测试 springspring的核心配置文件测试获取 spring ioc 容器中的 javabean测试的 java bean测试从 spring 容器中获取 javabean4.定义 mybatis 需要的类测试sql语句jdbc连接信息文件定义在项目 resources 目录下实体类mapper接口service 接口service实现类mapper.原创 2022-06-15 10:10:27 · 112 阅读 · 0 评论 -
mybatis-spring整合mybatis
说明:基于 maven 构建项目进行测试2.测试mybatismybatis-config.xml测试 mybatis3.测试 springspring的核心配置文件测试获取 spring ioc 容器中的 javabean测试的 java bean测试从 spring 容器中获取 javabean4.定义 mybatis 需要的类测试sql语句jdbc连接信息文件定义在项目 resources 目录下实体类mapper接口service 接口service实现类mapper.原创 2022-06-10 17:43:28 · 126 阅读 · 0 评论 -
设计模式-代理模式(1)-静态代理
之前学习总结的时候也是学习过代理模式的 , 但是记忆不是很深刻 , 这次复习一下 , 慢一点 , 准备深度学习一下代理 , 主要是动态代理代理模式应用很多,spring aop 就是基于动态代理 ,spring 事务也是基于动态代理 ,springboot 的拦截器基于aop ,aop基于动态代理 ,mybatis 的 mapper 接口 也是基于动态代理==> 而且是 jdk 动态代理 ,aspect 基于动态代理 。。。 等等代理模式springboot快速整合aop复习回顾重点说明探究原原创 2022-06-07 20:09:18 · 122 阅读 · 0 评论 -
mybatis-主要几个组件
寻找完整sql语句思路1.总结mybatis组件 , sql最总肯定在 excutor 执行器类里面执行2.找 excutor 执行器接口的实现类 , 最后找到 SimpleExecutor 实现类3.mybatis 是 jdbc 再次封装 , jdbc 使用 statment 传输 sql4.所以在 excutor 执行器里面寻找 对应的 statment 拓展类5.最终在 SimpleExcutor 里面 找到最终的 sql注意这个类 ClientPreParedStatement今天面试有的问题没有完原创 2022-06-07 15:17:44 · 491 阅读 · 0 评论 -
mybatis-初探源码
1.通过 SqlSessionFactoryBuilder 对象 , 基于 配置文件(mybatis-config.xml) 构建SqlSessionFactory2.通过 SqlSessionFactory 连接工厂 创建 SqlSession 对象3.通过 SqlSession 对象过去 Mapper 接口mapper接口 --> mapper.xml 的 namespacemapper接口方法- —> mapper.xml 的 idsqlsession 执行 sql 语句 , 并处理接口4.执行方法原创 2022-06-06 10:26:44 · 174 阅读 · 0 评论 -
mybatis-从jdbc到mybatis使用
最近在学习 java 主流开源框架源码 , 顺便看了下设计模式 , 可以同时进行我看 spring 源码的时候优点蒙 , 而且相对复杂 , 所以打算花 10 天时间去看 mybatis 源码顺便看完设计模式未来 10 天任务学习 mybatis 之前 , 我打算回顾一下 jdbc 和 mybatis 基本使用 , 写个入门 demo 实验一下因为 mybatis 也是基于 jdbc 的 , 所以先回顾一下 jdbcideamaven 编译mybatis 依赖t = mapper.queryAll原创 2022-06-06 10:25:05 · 135 阅读 · 0 评论 -
设计模式-模板方法
参考网址:面试题 : spring 中使用了哪几种设计模式模板方法举例: JdbcTemplate , RedisTemplate , StringRedisTemplate视频种模板方法 , 太过简单 , 我们可以使用一个案例介绍例如课程表,每周5天课,不同年级学生学的课程是不同的。那么咱们就通过模板方法来实现高二高三的课表内容。测试自己总结模板方法是 抽象类的一种应用模板方法也叫钩子函数 , 回调函数优缺点优点:1、利用模板方法将模板方法的代码放到抽象父类中,可以提高代码的复用性。转载 2022-06-06 10:24:28 · 82 阅读 · 0 评论 -
设计模式-构建者模式
今天面试面试的大概问题需求参考 lombok 的链式编程 和 构建者 给对象属性赋值普通的 set/get 方法赋值User 类 , 给实例的属性赋值链式赋值参考了 lombok 的 @Accessors(chain = true) 注解构建者模式参考了 lombok @Build 注解...原创 2022-06-06 10:23:56 · 86 阅读 · 0 评论 -
设计模式-策略模式
设计模式视频 , 讲解案例是 java 比较器参考案例实现一个策略模式买东西 , 用户等级不同 , 打折程度不同买东西设置用户会员等级一级会员策略二级会员策略三级会员策略测试springboot条件装配这个应该严格属于适配器模式 , 但是和策略好像又有点关系联想起来 , 增强记忆自己总结网址:基于springboot环境变量 , 基于不同的策略以上传文件为例,在开发环境下,我们将文件上传到本地,而在测试环境、生产环境,我们将文件上传到云端服务商。最后,运行程序在运行程序时,加上JVM参数-原创 2022-06-06 10:23:22 · 102 阅读 · 0 评论 -
设计模式-单例模式
单例模式一共有 8 种, 但是只有 5 种是线程安全的懒汉式-直接加锁懒汉式-双重检锁静态内部类枚举总结int i = 0; i < 100; i++) {new Thread(()->{System.out.println(Singleton05.INSTANCE.hashCode());}).start();}}}...原创 2022-06-06 10:23:02 · 61 阅读 · 0 评论