spring技术内幕读书笔记
文章平均质量分 66
javazcw
这个作者很懒,什么都没留下…
展开
-
(一)Spring核心-IoC容器的实现
1.IoC容器和依赖反转模式依赖反转模式也就是说把控制权从具体业务对象手中转交到平台或者框架中。所以,控制反转是关于一个对象如何获取它所依赖的对象的引用,反转指的是责任的反转。通过对使用IoC容器,对象依赖关系的管理反转了,转到IoC容器中来了,对象之间的相互依赖关系由IoC容器来管理,并由IoC容器完成对象的注入。这样就将散落在不同代码中的功能相同的部分集中成为容器的一部分。2.IoC容原创 2017-09-25 20:54:50 · 327 阅读 · 0 评论 -
(三)Spring MVC与Web环境-上下文在Web容器的启动
1.Web环境中的Spring MVCSpring IOC是一个独立的模块,它并不是直接在Web容器中起作用的,如果要在Web环境中使用IoC容器,需要Spring为IoC设计一个启动过程,把IoC容器导入,并在Web环境中建立起来。DispatcherServlet和ContextLoaderListener提供了在Web容器中队Spring的接口,这些接口与Web容器的耦合是通过Servlet...原创 2018-05-31 16:34:34 · 211 阅读 · 0 评论 -
(三)Spring MVC与Web环境-Spring MVC的设计与实现
1.Spring MVC设计在Spring MVC的使用中,我们在web.xml配置了一个DispatcherServlet,这个DispatcherServlet实现的是Sun的J2EE核心模式中的前端控制器模式,作为一个前端控制器,所有的Web请求都需要通过它来处理,进行转发、匹配、数据处理后,并转由页面进行展现。其继承体系如下图: ...原创 2018-06-13 17:26:08 · 224 阅读 · 0 评论 -
(二)Spring AOP的实现-Spring AOP的高级特性
1.Spring提供了许多现成的TargetSource实现,比如HotSwappableTargetSource,HotSwappableTargetSource使用户可以以线程安全的方式切换目标对象,提供所谓的热交换功能。只需要把HotSwappableTargetSource配置到ProxyFactoryBean的target属性就可以了,在需要更换真正的目标对象时,调用HotSwappab...原创 2018-05-20 22:08:19 · 368 阅读 · 0 评论 -
(二)Spring AOP的实现-ProxyFactory实现AOP
1.我们还可以使用ProxyFactory实现Spring AOP的功能,只是在使用ProxyFactory的时候,需要编程式的完成AOP应用的设置。TargetImpl target = new TargetImple();ProxyFactory aopFactory = new ProxyFactory(target);aopFactory.addAdvisor(yourAdvisor);a...原创 2018-05-20 21:56:05 · 322 阅读 · 0 评论 -
(一)Spring核心-容器其他相关特性
1.ApplicationContext和Bean的初始化及销毁在使用上下文时需要做一些准备工作,这些准备工作在prepareBeanFactory()方法中实现。在这个方法中,为容器配置了Classloader,Propertyeditor和BeanPostProcessor等,从而为容器的启动做好了必要的准备。在容器要关闭时,需要完成一系列工作,这些工作在doClose()方法中完成。在这个方...原创 2018-03-30 20:09:26 · 284 阅读 · 0 评论 -
(一)Spring核心-IoC容器的依赖注入
依赖注入的过程是用户第一次向IoC容器索要Bean时触发的,也就是由DefaultListableBeanFactory中的getBean()这个方法触发的。具体的实现是在AbstractBeanFactory中的doGetBean()这个方法中。如果在当前的工厂中取不到Bean,就到双亲BeanFactory中取,如果当前双亲工厂取不到,就顺着双亲BeanFactory链一直向上查找,再获取当前...原创 2018-03-28 18:55:55 · 226 阅读 · 0 评论 -
(一)Spring核心-IOC容器启动
IoC容器的初始化是由refresh()方法触发的,启动过程包括BeanDefinition的Resource定位、BeanDefinition的载入和BeanDefinition的注册。Resource定位指的是BeanDefinition的资源定位,类似于容器寻找数据的过程;BeanDefinition的载入指的是将用户定义好的Bean表示成IoC容器内部的数据结构;向IoC容器注入这些Bea...原创 2018-03-26 21:20:06 · 372 阅读 · 0 评论 -
(二)Spring AOP的实现-Spring AOP拦截器调用的实现
1.Spring AOP通过JDK的Proxy方式或CGLIB方式生成代理对象的时候,相关的拦截器已经配置到代理对象中去了,拦截器在代理对象中起作用是通过对这些方法的回调来完成的。如果使用JDK的Proxy来生成代理对象,需要通过哦InvocationHandler来设计拦截器回调,如果用CGLIB生成代理对象,需要通过DynamicAdvisedInterceptor来完成回调。2.JdkDyn...原创 2018-05-20 21:44:35 · 1896 阅读 · 0 评论 -
(二)Spring AOP的实现-建立AopProxy代理对象
1.设计原理在Spring中是通过配置和调用Spring的ProxyFactoryBean来生成代理对象的,在这个过程中可以使用JDK的Proxy和CGLIB两种生成方式。ProxyFactory的继承体系如下图:由继承体系可见,对于需要使用AspectJ的AOP应用,AspectJProxyFactory起到集成Spring和AspectJ的作用;使用ProxyFactoryBean可以在IOC...原创 2018-04-02 22:51:26 · 262 阅读 · 0 评论 -
(二)Spring AOP的实现-Spring AOP的设计与实现
1.JVM的动态代理特性在Spring AOP实现中,使用到的核心技术就是动态代理,这种动态代理是Jdk的一个特性。如何使用jdk自带的动态代理机制实现一个动态代理类的过程可以参考这片文章:https://mp.csdn.net/postedit/78186037。调用Proxy类的newInstance方法可以动态生成一个代理类,要想完成对目标方法的增强还需实现一个回调方法,这个方法起到的作用是...原创 2018-03-31 16:28:12 · 112 阅读 · 0 评论 -
(二)Spring AOP的实现-Spring AOP概述
1.AOP的概念AOP是Aspect-Oriented Programming的简称,即面向切面编程,Aspect是一种新的模块化机制,用来描述分散在对象、类、或函数中的横切关注点。AOP联盟定义AOP体系结构由高到低、从使用到实现的三个层次。最高层是语言和开发环境,包括一下概念。“基础”可以视为待增强对象或者说是目标对象;“切面”通常包括对于基础的增强应用;“配置”可以看成是一种编织,配置可以理...原创 2018-03-31 16:12:42 · 105 阅读 · 0 评论 -
一个Spring微型Ioc容器的分析
前言:之前看过<<Spring技术内幕>>有关IOC容器的讲解,无奈Spring的容器实现挺复杂,也没看懂。前几天无意中在git hub上看到了一个模仿Spring的IOC容器实现:tiny-ioc,麻雀虽小可五脏俱全,实现了Spring IOC基本功能,对把握Spring容器的设计大有裨益。自己也跟着作者一步一步实现(github地址:https://github.com...原创 2019-03-24 14:29:11 · 131 阅读 · 0 评论