spring简介 Spring 是一个开源框架,中文意思就是春天,也许是作者想让自己的这个框架给Java开发人员带来春天吧.其官方网站是 https://spring.io/ ,可以在官方网站下载到完整的类库,源代码以及文档.spring是一个高度灵活的轻量级框架,其目的是降低企业级应用开发的复杂度. spring的特点 轻量级:Spring 是非侵入性的 - 基于 Spring 开发的应用中的对象可以不依赖于 Spring 的 API 容器:Spring 是一个容器, 因为它包含并且管理应用对…
Spring是java平台上的一个开源应用框架.它的第一个版本是由Rod Johnson写出来的.Rod在他的Expert One-On- One Java EE Design and Development(Java企业应用设计与开发的专家一对一)一书中首次发布了这个框架.该框架也可以移植到.NET的环境下, Spring的框架首次在2003年6月的Apache 2.0的使用许可中发布.第一个具有里程碑意义的版本是2004年3月发布的1.0.2004年9月和2005年3月先后又有重要的版本面世…
在对IoC有了初步的认知后,我们开始对IOC的实现原理进行深入理解.本文将帮助你站在设计者的角度去看IOC最顶层的结构设计.@pdai Spring框架系列(6) - Spring IOC实现原理详解之IOC体系结构设计 站在设计者的角度考虑设计IOC容器 Spring IoC的体系结构设计 BeanFactory和BeanRegistry:IOC容器功能规范和Bean的注册 BeanFactory定义了IOC 容器基本功能规范? BeanFactory为何要定义这么多层次的接口?定义了哪些接口…
上文,我们看了IOC设计要点和设计结构:紧接着这篇,我们可以看下源码的实现了:Spring如何实现将资源配置(以xml配置为例)通过加载,解析,生成BeanDefination并注册到IoC容器中的.@pdai Spring框架系列(7) - Spring IOC实现原理详解之IOC初始化流程 引入 如何将Bean从XML配置中解析后放到IoC容器中的? 初始化的入口 设置资源解析器和环境 设置配置路径 初始化的主体流程 初始化BeanFactory之obtainFreshBeanFactory…
上文,我们看了IOC设计要点和设计结构:以及Spring如何实现将资源配置(以xml配置为例)通过加载,解析,生成BeanDefination并注册到IoC容器中的:容器中存放的是Bean的定义即BeanDefinition放到beanDefinitionMap中,本质上是一个ConcurrentHashMap<String, Object>:并且BeanDefinition接口中包含了这个类的Class信息以及是否是单例等.那么如何从BeanDefinition中实例化Bean对象呢,这是本…
我们在前文中已经介绍了SpringAOP的切面实现和创建动态代理的过程,那么动态代理是如何工作的呢?本文主要介绍Cglib动态代理的案例和SpringAOP实现的原理.@pdai Spring框架系列(11) - Spring AOP实现原理详解之Cglib代理实现 引入 动态代理要解决什么问题? 什么是代理? 什么是动态代理? 什么是Cglib? SpringAOP和Cglib是什么关系? Cglib代理的案例 pom包依赖 定义实体 被代理的类 cglib代理 使用代理 简单测试 Cglib…
1.Bean 的配置 Spring可以看做一个大型工厂,用于生产和管理Spring容器中的Bean,Spring框架支持XML和Properties两种格式的配置文件,在实际开发中常用XML格式的配置文件.XML配置文件的跟标签是<beans>,<beans>中包含了多个<bean>子元素,每个<bean>元素定义一个Bean,并描述Bean如何被装配到Spring容器中.<bean>元素的常用属性及其子元素说明如下: id属性:Bean在Bea…
上文中我们简单介绍了Spring和Spring Framework的组件,那么这些Spring Framework组件是如何配合工作的呢?本文主要承接上文,向你展示Spring Framework组件的典型应用场景和基于这个场景设计出的简单案例,并以此引出Spring的核心要点,比如IOC和AOP等:在此基础上还引入了不同的配置方式, 如XML,Java配置和注解方式的差异.@pdai Spring框架系列(2) - Spring简单例子引入Spring要点 Spring框架如何应用 设计一个S…
前文,我们分析了Spring IOC的初始化过程和Bean的生命周期等,而Spring AOP也是基于IOC的Bean加载来实现的.本文主要介绍Spring AOP原理解析的切面实现过程(将切面类的所有切面方法根据使用的注解生成对应Advice,并将Advice连同切入点匹配器和切面类等信息一并封装到Advisor,为后续交给代理增强实现做准备的过程).@pdai Spring框架系列(9) - Spring AOP实现原理详解之AOP切面的实现 引入 aop配置标签的解析 config配置标签…
上文我们介绍了Spring AOP原理解析的切面实现过程(将切面类的所有切面方法根据使用的注解生成对应Advice,并将Advice连同切入点匹配器和切面类等信息一并封装到Advisor).本文在此基础上继续介绍,代理(cglib代理和JDK代理)的创建过程.@pdai Spring框架系列(10) - Spring AOP实现原理详解之AOP代理的创建 引入 代理的创建 获取所有的Advisor 创建代理的入口方法 依据条件创建代理(jdk或cglib) 更多文章 引入 前文主要Spring…