文章来源:http://blog.csdn.NET/longyulu/article/details/36174979 用过spring的朋友都知道spring的强大和高深,都觉得深不可测,其实当你真正花些时间读一读源码就知道它的一些技术实现其实是建立在一些最基本的技术之上而已:例如AOP(面向方面编程)的实现是建立在CGLib提供的类代理和jdk提供的接口代理,IOC(控制反转)的实现建立在工厂模式.Java反射机制和jdk的操作XML的DOM解析方式.       下面来对spring源码中…
SpringMVC的工作原理图: SpringMVC流程 . 用户发送请求至前端控制器DispatcherServlet. . DispatcherServlet收到请求调用HandlerMapping处理器映射器. . 处理器映射器找到具体的处理器(可以根据xml配置.注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet. . DispatcherServlet调用HandlerAdapter处理器适配器. . HandlerAdapter经…
IOC原理 将对象创建交给Spring去管理. 实现IOC的两种方式 IOC配置文件的方式 IOC注解的方式 IOC底层实现原理 底层实现使用的技术 1.1 xml配置文件 1.2 dom4j解析xml 1.3 工厂模式 1.4 反射 Spring的IOC实现过程 导入Jar包 * 如果做Spring最基本的功能,只需要导入最基本的四个即可.(Beans.Core.Context.SpEL). * 因为Spring没有提供日志功能,所以除了上述jar包之外,还要有输出日志的jar包(common…
IOC:控制反转,是一种设计模式.一层含义是控制权的转移:由传统的在程序中控制依赖转移到由容器来控制:第二层是依赖注入:将相互依赖的对象分离,在spring配置文件中描述他们的依赖关系.他们的依赖关系只在使用的时候才建立.简单来说就是不需要NEW一个对象了.AOP:面向切面,是一种编程思想,OOP的延续.将系统中非核心的业务提取出来,进行单独处理.比如事务.日志和安全等.这个简单来说就是可以在一段程序之前或者之后做一些事.Spring 的AOP和IOC都是为了解决系统代码耦合度过高的问题.使代码…
在百度上看到一篇很有意思的文章,是对AOP的一种解释,如下:(摘自:百度文库的 AOP和IOC最容易理解的说明(Spring知识小计)): IOC,依赖倒置的意思, 所谓依赖,从程序的角度看,就是比如A要调用B的方法,那么A就依赖于B,反正A要用到B,则A依赖于B. 所谓倒置,你必须理解如果不倒置,会怎么着,因为A必须要有B,才可以调用B,如果不倒置,意思就是A主动获取B的实例:B b = new B(),这就是最简单的获取B实例的方法(当然还有各种设计模式可以帮助你去获得B的实例,比如工厂.L…
1.IOC概念:spring容器创建对象并管理 2.IOC的底层原理的具体实现: 1)所使用的技术: (1). dom4j解析xml配置文件 (2).工厂设计模式(解耦合) (3).反射 第一步:配置需要创建的配置文件 <bean id="userService" class="....."/> 第二步:创建一个工厂类:使用dom4j解析配置文件+反射 public class UserFactory{ public static UserService…
反射机制概念   我们考虑一个场景,如果我们在程序运行时,一个对象想要检视自己所拥有的成员属性,该如何操作?再考虑另一个场景,如果我们想要在运行期获得某个类的Class信息如它的属性.构造方法.一般方法后再考虑是否创建它的对象,这种情况该怎么办呢?这就需要用到反射! 我们.java文件在编译后会变成.class文件,这就像是个镜面,本身是.java,在镜中是.class,他们其实是一样的:那么同理,我们看到镜子的反射是.class,就能通过反编译,了解到.java文件的本来面目. 对于反射,官方…
从这个继承体系结构图来看,我们可以发现DefaultListableBeanFactory是第一个非抽象类,非接口类.实际IOC容器.所以这篇博客以DefaultListableBeanFactoryIOC容器为基准进行IOC原理解析. 一.两个重要接口 前面已经分析了BeanFactor,它的三个直接子类接口,接下来我们继续分析两个重要的接口,可以看到这两个接口也是集大成者. 首先是ConfigurableBeanFactor 1.ConfigurableBeanFactory 从名字可以看到…
Spring的核心就是AOP与IoC,想要学习SpringBoot,首先得理解这些概念: AOP(Aspect Oriented Programming 面向切面编程) IoC(Inversion of Control 控制反转) DI(Dependency Injection 依赖注入) AOP是什么 非常简单易懂的AOP文章:https://www.cnblogs.com/Wolfmanlq/p/6036019.html AOP - Aspect Oriented Programming(面…
AOP和IOC的作用 转载▼     IOC:控制反转,是一种设计模式.一层含义是控制权的转移:由传统的在程序中控制依赖转移到由容器来控制:第二层是依赖注入:将相互依赖的对象分离,在spring配置文件中描述他们的依赖关系.他们的依赖关系只在使用的时候才建立.简单来说就是不需要NEW一个对象了.AOP:面向切面,是一种编程思想,OOP的延续.将系统中非核心的业务提取出来,进行单独处理.比如事务.日志和安全等.这个简单来说就是可以在一段程序之前或者之后做一些事.Spring 的AOP和IOC都是为…