Spring详解

来源:互联网 发布:入门java看什么书 编辑:程序博客网 时间:2024/06/07 17:59
  • 一句话说明Spring是什么:为了方便企业级应用开发的一个轻量级控制反转面向切面容器框架

  • Spring的特点:

    1. 方便解耦
    2. 支持Aop编程
    3. 集成各种优秀框架(struts,hibernate,mybatis,Springmvc等)
    4. 方便模块测试
    5. 降低Java EE API的使用难度
  • Spring的起源
     Rod Johnson在2002年编著的《Expert one on one J2EE design and development》一书中,对Java EE 系统框架臃肿、低效、脱离现实的种种现状提出了质疑,并积极寻求探索革新Spring Logo之道。书中所提到Without EJB设计思想的体现;同时也深刻的体现了Spring背后的设计理念。在该书中,作者根据自己多年丰富的实践经验,对EJB的各种笨重臃肿的结构进行了逐一的分析和否定,并分别以简洁实用的方式替换之。至此一战功成,Rod Johnson成为一个改变Java世界的大师级人物。
     

  • Spring的核心机制
    -Ioc(控制反转)
    -Aop(面行切面编程)
    想要学好Spring,就一定要了解Ioc 和 Aop

  • Ioc(控制反转)

    1. 控制反转(Inversion of Control)是一个重要的面向对象编程的法则来削减计算机程序的耦合问题。 它还有一个名字叫做依赖注入(Dependency Injection)。IoC不是什么技术,它是一种设计模式。
    2. 所谓控制反转就是把控制权交给第三方管理,通常某个对象实例要调用另一个对象实例的时候,我们是在调用者类中用关键字new来实例化被调用者对象,现在Spring容器就相当于一个第三方管理容器,实例化的工作都由Spring来完成,然后注入到调用者中。
    3. 注入方式一般有两种:
      构造器注入:<constructor-arg ref="">,配置构造注入的时候可以配置index属性,用于指定该构造参数值作为第几个构造参数值。下表从0开始。
      setter注入:` ,实际就是调用属性的set方法。
  • Aop
    AOP(Aspect Oriented Programming),即面向切面编程,在运行时,动态地将代码切入到类的指定方法、指定位置上的编程思想,可以说是OOP(Object Oriented Programming,面向对象编程)的补充和完善。
    首先解释一下oop(面向对象编程):所有学习过,了解过,听说过Java的人一定都会知道面向对象编程思想,在Java的世界里一切皆对象。oop的概念就是继承,封装,多态。把一类事物的属性和行为抽象出来,封装成一个类。oop从横向分出一个个类,而Aop就从纵向上将一些特定代码加入到类中,Aop是oop更加立体,或者说Aop就是oop的延续。
    用一个图示来说明
    面向切面编程图示

横向的浅蓝色的就是业务逻辑,纵向的深蓝色的就是通用逻辑(持久化管理(Persistent)、事务管理(Transaction Management)、安全管理(Security)、日志管理(Logging)和调试管理(Debugging)等。)
aop的实现我只用动态代理实现过,所以如果有想要了解实现的可以看看这篇博客AOP面向切面编程的四种实现

以上就是我现在对Spring的全部理解,以后会更新,下面推荐几篇很好的文章.
Spring技术详解
Spring技术内幕
什么是面向切面编程AOP
深入浅出Spring

原创粉丝点击