Spring 基本概念

  Spring优点:
    1.Spring不同于其它的Framework,它要提供的是一种管理你的业务对象的方法。
    2.DI有效的降低了耦合度
    3.AOP提供了通用任务的集中管理
    4.ORM和DAO简化了对数据库访问
    5.高度开放性,并不强制
      Spring不会给你的工程添加对其它的框架依赖,同时Spring又可以称得上是一个一揽子解决方案,提供了一个典型应用所需要的大部分基础框架。

  Spring带来的开发好处:
    1.可以有效组织中间层对象
    2.使用统一的配置文件
    3.促进良好编程习惯,减少编程代价
    4.易于单元测试
    5.使EJB成为一种备选
    6.为数据存取提供了一致的框架

  Spring的特点:
    1.方便解耦,简化开发
      通过IoC容器,可以将对象之间的依赖关系交由Spring进行控制,避免硬编码所造成的过度程序耦合。
    2.AOP编程的支持
      可以方便进行面向切面的编程
    3.声明式事物的支持。
      可以通过声明式方式灵活地进行事物的管理,提高开发效率和质量。
    4.方便程序的测试
      可以用非容器依赖的编程方式进行几乎所有的测试工作。
    5.方便集成各种优秀框架
      其不排斥各种优秀的开源框架,可以降低各种框架的使用难度,提供了直接支持。
    6.降低JavaEE API的使用难度
      对比如jdbc、JavaMail、远程调用等,提供了一个薄薄的封装层。
    7.Spring的源码是经典学习范例
      = =再等等吧
  Spring框架结构:


    1.Spring Core:核心容器
      这是Spring框架最基础的部分,提供了依赖注入(DI,Dependency Injection)特征来实现容器对Bean的管理。最基本的概念是BeanFactory,它是任何Spring应用的核心。BeanFactory是工厂模式的一个实现,它使用IoC将应用配置和依赖说明从实际的应用代码中分离出来。
    2.应用上下文(Context)模块
      是一个配置文件,BeanFactory使Spring成为容器,而上下文模块使它成为框架。该模块扩展了BeanFactory的概念,增加了对国际化(I18N)消息、事件传播以及验证的支持。
    3.Spring的AOP模块
      其提供了对面向切面编程的丰富支持。
    4.JDBC抽象和DAO模块
      JDBC经常导致大量的重复代码,比如连接、创建、处理、关闭,而Spring的JDBC和DAO模块抽取了这些重复代码,因此用户可以保持数据库访问代码简洁,并且可以防止因关闭数据库资源失败而引起的问题。使用了Spring的AOP模块为Spring应用中的对象提供了事物管理服务。
    5.对象/关系映射集成模块
      Spring提供了ORM模块。Spring并不试图实现它自己的ORM解决方案,而是为几种流行的ORM框架提供了集成方案。Spring的事物管理支持ORM与JDBC。
    6.Spring的Web模块
      其建立于应用上下文模块之上,提供了一个适合于Web应用的上下文。还提供了一些面向服务支持,也提供了Spring和其它Web框架的集成,比如Struts。
    7.Spring的MVC框架
      功能全面,可利用Spring的任何其它服务,其使用IoC对控制逻辑和业务对象提供了完全的分离。

Spring学习之基本概念的更多相关文章

  1. Spring学习总结(19)——Spring概念详解

    Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson创建.简单来说,Spring是一个分层的JavaSE/EEfull-stack(一 ...

  2. Spring学习之AOP总结帖

    AOP(面向方面编程),也可称为面向切面编程,是一种编程范式,提供从另一个角度来考虑程序结构从而完善面向对象编程(OOP). 在进行 OOP 开发时,都是基于对组件(比如类)进行开发,然后对组件进行组 ...

  3. Spring学习之第一个AOP程序

    IOC和AOP是Spring的两大基石,AOP(面向方面编程),也可称为面向切面编程,是一种编程范式,提供从另一个角度来考虑程序结构从而完善面向对象编程(OOP). 在进行 OOP 开发时,都是基于对 ...

  4. Spring学习(二)——Spring中的AOP的初步理解[转]

      [前面的话] Spring对我太重要了,做个关于web相关的项目都要使用Spring,每次去看Spring相关的知识,总是感觉一知半解,没有很好的系统去学习一下,现在抽点时间学习一下Spring. ...

  5. 我的Spring学习记录(二)

    本篇就简单的说一下Bean的装配和AOP 本篇的项目是在上一篇我的Spring学习记录(一) 中项目的基础上进行开发的 1. 使用setter方法和构造方法装配Bean 1.1 前期准备 使用sett ...

  6. 【转】Spring学习---Bean配置的三种方式(XML、注解、Java类)介绍与对比

    [原文]https://www.toutiao.com/i6594205115605844493/ Spring学习Bean配置的三种方式(XML.注解.Java类)介绍与对比 本文将详细介绍Spri ...

  7. 不错的Spring学习笔记(转)

    Spring学习笔记(1)----简单的实例 ---------------------------------   首先需要准备Spring包,可从官方网站上下载.   下载解压后,必须的两个包是s ...

  8. Spring学习13-中IOC(工厂模式)和AOP(代理模式)的详细解释

    我们是在使用Spring框架的过程中,其实就是为了使用IOC,依赖注入,和AOP,面向切面编程,这两个是Spring的灵魂. 主要用到的设计模式有工厂模式和代理模式. IOC是工厂模式参考:设计模式- ...

  9. spring学习 8-面试(事务,解决线程安全)

    1.介绍一下Spring的事物管理 参考:Spring 学习7 -事务 2.Spring如何处理线程并发问题    Spring使用ThreadLocal解决线程安全问题 参考:Spring学习11- ...

随机推荐

  1. MATLAB三维散点图的绘制(scatter3、plot3)

    MATLAB三维散点图的绘制(scatter3.plot3) (1)函数scatter3 用法:scatter3(x,y,z,'.',c) % c 为颜色,需和x,y,z长度相同 例子: x=[422 ...

  2. Codeforces Round #363 (Div. 2)->B. One Bomb

    B. One Bomb time limit per test 1 second memory limit per test 256 megabytes input standard input ou ...

  3. PHP读取xml方法讲解

    一,什么是xml,xml有什么用途 XML(Extensible Markup Language)即可扩展标记语言,它与HTML一样,都是SGML(Standard Generalized Marku ...

  4. Linux下SVN的一些使用方法总结

    Linux下SVN的一些使用方法总结   近期的一个项目不方便 Check 到本地,需要在测试服务器上进行编写和测试,所以就研究了一下如何在 Linux 命令行下使用 SVN. 首先 svn help ...

  5. Splay树再学习

    队友最近可能在学Splay,然后让我敲下HDU1754的题,其实是很裸的一个线段树,不过用下Splay也无妨,他说他双旋超时,单旋过了,所以我就敲来看下.但是之前写的那个Splay越发的觉得不能看,所 ...

  6. hdu 2102 A计划(BFS,基础)

    题目 //要仔细写的BFS,着重对#穿越的处理哦: //花了几个小时终于把这道简单的BFS给弄好了,我果然还需要增加熟练度,需要再仔细一些: //代码有点乱,但我不想改了,,,,, #include& ...

  7. 使用 Spring 3 来创建 RESTful Web Services(转)

    使用 Spring 3 来创建 RESTful Web Services 在 Java™ 中,您可以使用以下几种方法来创建 RESTful Web Service:使用 JSR 311(311)及其参 ...

  8. 基于Struts2框架实现登录案例 之 程序国际化

    国际化牵涉的知识非常多,这里只能简单的介绍,程序国际化的一般做法是:在jsp页面时, 不是直接输出信息,而是输出一个key值,该key值在不同语言环境下找到对应资源文件下的 对应信息,因此首先要创建满 ...

  9. JVM学习笔记(三)------内存管理和垃圾回收

    JVM内存组成结构 JVM栈由堆.栈.本地方法栈.方法区等部分组成,结构图如下所示: 1)堆 所有通过new创建的对象的内存都在堆中分配,其大小可以通过-Xmx和-Xms来控制.堆被划分为新生代和旧生 ...

  10. html5 touch事件实现触屏页面上下滑动(一)

    最近做的做那个app的项目由于用overflow:hidden导致了很多问题,于是决定研究下html5的touch事件.想找个全面点的帖子真是难死了,虽然好多关于html5 touch的文章但大多都是 ...