`
ahopedog2
  • 浏览: 25186 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

spring原理总结

阅读更多

        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入门总结

    Spring注解驱动开发第33讲——AOP原理总结

    Spring注解驱动开发第33讲——AOP原理总结

    【Spring】总结Spring整合Mybatis的底层原理实现步骤

    (鲁班学院公开课笔记) Dao:数据访问层,提供让Service层调用的接口,更大的时候,Dao层可以是一个项目。 sqlSession.getMapper();使用的是JDK的动态代理 使用时 自定注入的条件:要被Spring...Spring容器中的Bean

    Spring框架小结

    主要讲述aop、控制反转IOC的原理、以及spring的工作原理及流程

    JAVA面试总结Spring,SpringBoot,Git原理

    JAVA面试总结Spring,SpringBoot,Git原理

    Spring Security3 安全 个人总结

    Spring Security3 拦截 过滤器 安全,框架原理入门

    spring 初学总结

    初学spring总结。spring mvc 的框架原理和一些技术总结。

    Spring和SpringMVC面试问题总结(15个)

    Spring和SpringMVC面试问题总结 1.Spring中AOP的应用场景、Aop原理、好处? 2.Spring中IOC的作用与原理?对象创建的过程。 3.介绍spring框架 4.Spring常见创建对象的注解? 5.Spring中用到的设计模式 6.Spring的优点...

    SpringCloud底层原理

    一、业务场景介绍二、SpringCloud核心组件:Eureka三、SpringCloud核心组件:Feign四、SpringCloud核心组件:Ribbon五、SpringCloud核心组件:Hystrix六、SpringCloud核心组件:Zuul七、总结毫无疑问,SpringCloud是...

    SSH工作原理文档 总结报告

    集合 SPRING STURTS 等工作原理说明

    Spring揭秘 高清版

    没有教程似的训导,更多的是说故事般的娓娓道来,本书是作者在多年的工作中积累的第一手Spring框架使用经验的总结,深入剖析了Spring框架各个模块的功能、出现的背景、设计理念和设计原理,揭开了Spring框架的神秘...

    Spring 揭秘.pdf

    没有教程似的训导,更多的是说故事般的娓娓道来,本书是作者在多年的工作中积累的第一手Spring框架使用经验的总结,深入剖析了Spring框架各个模块的功能、出现的背景、设计理念和设计原理,揭开了Spring框架的神秘...

    spring揭秘 王福强 高清版

    没有教程似的训导,更多的是说故事般的娓娓道来,本书是作者在多年的工作中积累的第一手Spring框架使用经验的总结,深入剖析了Spring框架各个模块的功能、出现的背景、设计理念和设计原理,揭开了Spring框架的神秘...

    Spring揭秘

    没有教程似的训导,更多的是说故事般的娓娓道来,本书是作者在多年的工作中积累的第一手Spring框架使用经验的总结,深入剖析了Spring框架各个模块的功能、出现的背景、设计理念和设计原理,揭开了Spring框架的神秘...

    spring揭秘

    没有教程似的训导,更多的是说故事般的娓娓道来,本书是作者在多年的工作中积累的第一手Spring框架使用经验的总结,深入剖析了Spring框架各个模块的功能、出现的背景、设计理念和设计原理,揭开了Spring框架的神秘...

Global site tag (gtag.js) - Google Analytics