自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 问答 (1)
  • 收藏
  • 关注

原创 chapter06_应用上下文与门面模式

整个Spring最重要的方法,refresh(),定义了Spring的生命周期创建BeanFactory实现类扫描BeanDefinition扩展点一:调用BeanFactory后置处理器扩展点二:注册Bean后置处理器提前实例化所有的单例Bean//创建BeanFactory,并扫描BeanDefinition//在bean实例化之前,执行BeanFactoryPostProcessor//BeanPostProcessor需要提前于其他bean实例化之前注册。

2025-08-23 17:43:40 676

原创 chapter04_PropertyValues属性初始化

首先修改createBean的业务逻辑,增加一个方法调用populateBean@Override新增填充Bean属性值的方法populateBean如果属性是引用类型,那么就立即从工厂中获取,调用getBean方法此处先不考虑循环引用//A依赖B,先实例化B,先不考虑循环引用我们可以在创建BeanDefinition的时候,传入PropertyValues,便于初始化属性。

2025-08-23 17:39:44 380

原创 chapter05_从spring.xml读取Bean

通过引入spring.xml配置文件,我们就可以简化Bean的注册用户只需要编写一个xml文件,由XmlBeanDefinitionReader自动解析xml文件,生成BeanDefinition并注册到BeanFactory。

2025-08-23 17:39:02 430

原创 chapter07_初始化和销毁方法

一个Bean,在进行实例化之后,需要进行两种初始化Bean的初始化与销毁,共有三种方式(注解、接口、XML),本章节,只实现接口和XMLinitMethod。

2025-08-22 23:34:03 523

原创 chapter04_PropertyValues属性初始化

首先修改createBean的业务逻辑,增加一个方法调用populateBean@Override新增填充Bean属性值的方法populateBean如果属性是引用类型,那么就立即从工厂中获取,调用getBean方法此处先不考虑循环引用//A依赖B,先实例化B,先不考虑循环引用在调用getBean带args参数方法,使用的是构造器注入,PropertyValues则是使用set方法注入。

2025-08-16 02:07:49 159

原创 chapter03_Bean的实例化与策略模式

先扩展一下BeanFactory接口,获取bean的时候,可以传入参数,这样就可以使用带参数的构造器。由于实例化的方式很多,我们这里使用策略模式,便于以后不断地扩展。改造doCreateBean方法,灵活切换对象实例化的方式。使用传入的构造器和传入的参数表,创建CGLIB代理对象。使用传入的构造器和传入的参数表,直接new对象。给测试的Bean,新建空参构造器和有参构造器。

2025-08-16 02:07:08 268

原创 chapter02_AbstractBeanfactory与模板方法

抽象类AbstractBeanfactory实现BeanFactory接口的思路引入单例池,作为Bean的缓存如果这个Bean如果已经存在,则直接从单例池中获取如果不存在,则应该创建,然后放进单例池,然后返回创建一个抽象类,使用模板方法设计模式,定义创建Bean这个过程父类,提供单例池子类,负责创建Bean孙子类,管理BeanDefinition/*** AbstractBeanFactory,模板类,定义了getBean需要的所有方法* @Author 孤风雪影*//**

2025-06-29 22:59:05 349

原创 chapter01_BeanFactory与工厂方法

工厂生产商品,需要图纸,根据图纸生产商品而Bean定义,就是Bean的图纸一个Bean必须先要将定义注册到Bean工厂,才能进行后续的创建类对象,最适合最为图纸,可以通过反射创建BeanBean工厂,最重要的两个方法注册Bean获取BeanBean工厂,最重要的一个属性Map,存储所有的Bean定义。

2025-06-29 19:08:53 264

原创 chapter32_SpringMVC与DispatcherServlet

从本章节开始进入SpringMVC的学习,SpringMVC最重要的类就是DispatcherServletDispatcherServlet的本质是一个Servlet,回顾一下Servlet。

2025-04-16 03:22:42 666

原创 chapter21_简化MethodInvocation

本章我们简化MethodInvocation的逻辑,将cglib与jdk动态代理的内容,统一封装到ReflectiveMethodInvocation。

2025-03-06 07:46:13 270

原创 chapter02_HTTP协议与Request

Hyper Text Transfer Protocol,超文本传输协议。

2025-02-21 04:37:45 250

原创 chapter16_三级缓存与提前AOP

AOP的位置,很关键之前是在initializeBean里面进行AOP现在引入了三级缓存,将AOP代码放到三级缓存一旦发生循环依赖,就会将三级缓存移动到二级。

2025-02-20 18:22:36 874

原创 chapter14_@Autowired与@Value

Autowired可以写在构造器、属性、方法上面本章只实现属性注入@Qualifier根据name注入@Inherited@Value可以写在属性、方法、参数上面本章只实现属性注入。

2025-02-18 01:40:46 630

原创 chapter09_Bean作用域和FactoryBean

本章节需要处理两个问题。

2025-02-16 01:49:25 309

原创 chapter10_事件监听与发布订阅模式

事件监听属于观察者模式,可以降低系统的耦合。

2025-02-16 01:41:24 305

原创 chapter15_Bean初始化后进行AOP

现在需要直接使用由Spring实例化策略(cglib或者simple)生成的对象,所以需要调整getTargetClass的逻辑。修改DefaultAdvisorAutoProxyCreator方法。之前的原始对象,是由代理直接使用构造器生成的。修改doCreateBean逻辑。准备Spring.xml文件。

2024-07-03 20:55:39 277

原创 MyBatis

对象关系映射Object:Java对象Relation:关系型数据库Mapping:映射一个Java对象,就代表了数据库中的一条记录。

2023-02-25 22:41:29 137

原创 JDBC【Java数据库连接】

JDBC---java操作数据的接口

2023-02-25 14:33:55 145

原创 Java文件下载与Feign调用

【代码】Java文件下载与Feign调用。

2023-02-21 20:29:55 565 2

原创 chapter01_初始化

浏览器访问http://127.0.0.1:18080/,观察控制台。引入hutool依赖。

2020-07-28 17:07:02 219

原创 chapter12_将AOP融入Spring

将AOP融入到Spring,依然是使用Bean后置处理器,最关键的类DefaultAdvisorAutoProxyCreator。

2020-07-28 16:56:34 174 2

原创 chapter11_AOP与代理模式

类匹配接口通知是否应适用于给定的目标类别/***/> clazz);方法匹配接口通知是否应适用于给定的方法/***/切点接口返回类匹配器和方法匹配器/**/**切点表达式最终实现借助AspectJ实现,完成了扩展点一/*** 底层用来描述切入点原语*/static {/*** 保存解析后的切点表达式*//*** 构造方法,解析传入的切点表达式*//*** 类型匹配* @return*/@Override> clazz) {/**

2020-07-21 23:01:02 195 1

原创 chapter08_Aware感知容器对象

ApplicationContextAware需要特殊处理,因为DefaultListableBeanFactory是ClassPathXmlApplicationContext的一个属性,DefaultListableBeanFactory创建Bean的时候,无法拿到ApplicationContext,所以我们使用BeanFactoryPostProcessor来传递ApplicationContext。ApplicationContextAware,感知ApplicationContext。

2020-07-18 15:50:23 200

原创 chapter13_自动扫描@Component

用于指定Bean作用域的注解,一般默认就是singleton。

2020-07-18 15:31:34 162 1

原创 块、行内、行内块

文章目录一、块元素block二、行内元素inline三、行内块inline-block一、块元素block块元素——div、p、h1-h6、ul、ol、li所有的块级元素独占一行显示可以设置宽高二、行内元素inline行内元素——span、a、font、strong、em、i所有的行内元素都在一行上显示不能设置宽高、由内容撑开三、行内块inline-block行内块——img、input可以设置宽高、并且在一行上显示默认对齐的是基线...

2020-07-18 14:04:47 3102

原创 chapter20_环绕通知

继续将AOP扩展到环绕通知。

2020-07-14 21:54:36 319 1

原创 chapter19_后置通知(异常返回)

继续完成后置通知的另一个分支,异常返回后置通知。

2020-07-12 14:43:06 209 1

原创 chapter18_后置通知(正常返回)

在上一章节完成多个前置通知后,继续扩展到后置通知,包括。

2020-05-31 12:26:24 230 1

原创 chapter17_多个AOP切面

一、简介1.1 什么是Tomcattomcat是web服务器软件,将做好的web项目放入tomcat中运行。1.2 什么是Servlet二、相关概念回顾2.1 软件架构C/S:客户端/服务器B/S:浏览器/服务器2.2 资源分类静态资源:所有的用户看到的是同样的结果,可以直接被浏览器解析,例如html,css,JavaScript动态资源:不同的用户会看到不同的结果,需要先转化为静态资源,再返回给浏览器。例如Servlet/Jsp,php,asp2.3 网络通信三要素I

2020-05-27 19:30:20 340 1

原创 chapter22_使用标签自动注册creator

之前需要手动在spring.xml配置文件中配置一个的Bean,Spring才会自动开启AOP,现在我们希望只需要配置一个标签,就可以开启自动AOP。

2020-05-22 22:19:38 192 1

原创 chapter23_从@Aspect到Advisor

Aspect是高级切面,Advisor是低级切面,Spring会将一个Aspect转换成多个Advisor。

2019-10-27 22:07:02 498

原创 Windwos、Mac、iPad、iPhone之间共享文件

Windows与Mac和iPad系统之间共享文件,其实是我们程序员的硬需求,今天与大家分享最佳的解决方案,让你可以躺在床上看电脑里下载的视频。一、网络的基础知识用了Windows这么多年,你真的知道专用网络与公用网络吗?专用网络:我们自己家里的wifi,以及有线,都应该设置成专用网络,因为都是自己在用,可以方便的共享文件,不用担心隐私泄露。公用网络:比如说在星巴克,以及公司,最...

2019-10-25 23:01:21 1932

原创 MySQL(一)——完全卸载

纯净卸载,避免重装时卡在主界面。

2019-10-23 00:12:06 309

原创 IDEA

IDEA,最好用的开发工具

2019-10-19 23:36:58 416

原创 SpringBoot

SpringBoot:见名知意,Boot就是启动的意思。无需复杂的配置,帮你一键启动项目

2019-10-19 20:12:30 238

原创 打印三角形

一个简单的三角形题目,可以学到很多。

2019-10-19 00:13:27 693

原创 版本控制-SVN

相对于Git,SVN使用起来更加简单,个人比较喜欢使用SVN。

2019-10-18 12:47:24 223

原创 版本控制-Git

随着去中心化,分布式时代的到来,Git必然会越来越受欢迎。

2019-10-18 00:20:38 214

原创 chapter24_解析@Around

笔者并不喜欢长篇累牍,本文试图通过精炼的语言,分享我使用Markdown的经验技巧,帮助新手快速入门。

2019-10-16 17:18:49 350 1

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除