# small-spring **Repository Path**: lanceluot/small-spring ## Basic Information - **Project Name**: small-spring - **Description**: 学习spring,手写spring - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-03-09 - **Last Updated**: 2024-03-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Spring 手撸专栏学习笔记 ## 第 9 章:虎行有雨,定义标记类型Aware接口,实现感知容器对象 有时候仅仅得到一个bean也只是只能使用它的自带的方法,我们还需要获得整个应用程序的上下文,那么就需要从从获取到的bean中得到着这个上下文,而这章就是定义了一个这接口,使得实现了这个接口的bean都可以从方法中获取到的这歌上下文 ## 第 10 章:横刀跃马,关于Bean对象作用域以及FactoryBean的实现和使用 本章实现的额内容其实就是类似mybatis实现用户自定义接口即,用户写一个接口类,插件实现代理类,用代理类代理出我们的接口对象,具体就是插件在xml文件定义代理类,把这歌代理类当作一般的bean,不过这个bean实现了spring的FactoryBean接口,这样spring在初始化加载beanDefine信息后实例化时会特殊判断这歌bean是不是实现了FactoryBean接口,如果实现了就实例化这歌Factory产生的对象,对于这歌代理类既然是代理接口自然是使用jdk动态代理的方式,然而我们插件写的代理类又被spring代理,代理类被代理,哈哈 ## 第 11 章:更上层楼,基于观察者实现,容器事件和事件监听器 本章就是实现了定义事件,发布监听消息功能,采用了设计模式中观察者模式即消息的产生者一旦产生消息就去通知监听者处理,这里消息产生者发布消息就会让拥有广播能力的广播类将消息传送对应的监听器,广播类的实现采用了设计模式的模板模式,即把一系列特定的步骤定义好,集体的实现由子类来实现 ## 第 12 章:炉火纯青,基于JDK和Cglib动态代理,实现AOP核心功能 本章实现AOP功能,有基于JDK和Cglib实现两种方式,jdk实现显然就是反射,并且要使用了MethodInterceptor和 是 MethodInvocation类,MethodInterceptor是AOP 联盟提供的接口,定义了在方法执行前后添加额外逻辑的方法。 MethodInvocation 是 AOP 联盟提供的接口,表示一个方法调用的上下文,包含了要调用的目标方法、参数等信息。