spring是目前使用最广泛,大家都知道的一个框架。从2003年开始到目前(2016年)已存在了13年,目前最新版本是4。
对我来说spring是使用最久的一个技术,有空的时候拿出来复习一下,温故而知新,也是很值得的。
spring创始人是Rod Johnson。于2003年兴起。简单说,Spring是一个分层的Java SE/EEFull-stack (一站式)轻量级开源框架。
spring是分层架构的,分层架构允许使用者选择使用哪一个组件。同时为为J2EE应用程序的开发提供框架。
spring使用基本的JavaBean完成以前只能由EJB完成的事情。
spring的核心是控制反转(IoC)和面向切面变成(AOP),简单讲,spring是一个分层的JavaSE / EEfull-stack(一站式)的轻量级开源框架(重量级如EJB)。
IoC(inversion of control)控制反转
让对象的创建不再使用new,对象的生命周期,和对象之间的关系的控制权由原来的业务对象手中转交给了容器。
DI(Dependency Injection)依赖注入
Ioc的一个重要特性是在系统运行时,动态的向某个对象提供它所需要的其它对象,这一点是通过DI实现的。
比如:A需要操作数据库,需要一个Connection对象。以前需要在A中编程获得一个Connection。有了Spring,只要告诉Spring A需要一个Connection,至于这个Connection怎么构造,何时构造,A不需要知道。在系统运行中,Spring会在适当的时候创建一个Connection对象,然后像打针一样,注射给A。Spring可以通过JDK的反射实现DI。
AOP(Aspect-Oriented Programing)面向切面编程
使业务逻辑各个部分进行分离,耦合度降低,提高程序可重用性,提高开发效率。
AOP是Gof设计模式的延伸,设计模式孜孜不倦追求的是调用者和被调用者之间的解耦,提高代码的灵活性和可扩展性。Aop也是这种目标的一种实现。
AOP的代理的实现方式:JDK动态代理,CGLib字节码生成。
面向对象编程是将需求功能封装成相对独立且有自己行为的类中,依靠继承和多态建立彼此之间的关系。
面向切面就是,将不同对象中相同的功能抽取出来,封装在通用的类中,使原来的对象共享相同的行为。当功能发生改变时,只需要修改共享的行为。
Spring使用到的设计模式
1 静态工厂
BeanFactory就是一个静态工厂,根据传入的参数,动态创建一个类实例。
2 工厂方法
Spring管理的是一个工厂类,通过这个工厂类的方法创建类实例。
<bean id="random" class="example.RandomFactory" factory-method="createRandom" scope="prototype">
3 单例模式
使用singleton参数创建bean。spring默认的对象是singleton
4 适配器(Adapter)
spring的aop中,通过动态代理创建代理类,代理类定义了新的适配方法的接口。
5 代理(Proxy)
动态代理
6 观察者(Observer)
常用的是监听器的实现,比如ApplicationListener。
7 模板方法(Template Method)
JdbcTemplate
相关推荐
spring介绍,spring 原理,spring 入门,spring入门总结
Spring注解驱动开发第33讲——AOP原理总结
(鲁班学院公开课笔记) Dao:数据访问层,提供让Service层调用的接口,更大的时候,Dao层可以是一个项目。 sqlSession.getMapper();使用的是JDK的动态代理 使用时 自定注入的条件:要被Spring...Spring容器中的Bean
主要讲述aop、控制反转IOC的原理、以及spring的工作原理及流程
JAVA面试总结Spring,SpringBoot,Git原理
Spring Security3 拦截 过滤器 安全,框架原理入门
初学spring总结。spring mvc 的框架原理和一些技术总结。
Spring和SpringMVC面试问题总结 1.Spring中AOP的应用场景、Aop原理、好处? 2.Spring中IOC的作用与原理?对象创建的过程。 3.介绍spring框架 4.Spring常见创建对象的注解? 5.Spring中用到的设计模式 6.Spring的优点...
一、业务场景介绍二、SpringCloud核心组件:Eureka三、SpringCloud核心组件:Feign四、SpringCloud核心组件:Ribbon五、SpringCloud核心组件:Hystrix六、SpringCloud核心组件:Zuul七、总结毫无疑问,SpringCloud是...
集合 SPRING STURTS 等工作原理说明
没有教程似的训导,更多的是说故事般的娓娓道来,本书是作者在多年的工作中积累的第一手Spring框架使用经验的总结,深入剖析了Spring框架各个模块的功能、出现的背景、设计理念和设计原理,揭开了Spring框架的神秘...
没有教程似的训导,更多的是说故事般的娓娓道来,本书是作者在多年的工作中积累的第一手Spring框架使用经验的总结,深入剖析了Spring框架各个模块的功能、出现的背景、设计理念和设计原理,揭开了Spring框架的神秘...
没有教程似的训导,更多的是说故事般的娓娓道来,本书是作者在多年的工作中积累的第一手Spring框架使用经验的总结,深入剖析了Spring框架各个模块的功能、出现的背景、设计理念和设计原理,揭开了Spring框架的神秘...
没有教程似的训导,更多的是说故事般的娓娓道来,本书是作者在多年的工作中积累的第一手Spring框架使用经验的总结,深入剖析了Spring框架各个模块的功能、出现的背景、设计理念和设计原理,揭开了Spring框架的神秘...
没有教程似的训导,更多的是说故事般的娓娓道来,本书是作者在多年的工作中积累的第一手Spring框架使用经验的总结,深入剖析了Spring框架各个模块的功能、出现的背景、设计理念和设计原理,揭开了Spring框架的神秘...