zoukankan      html  css  js  c++  java
  • Spring框架学习总结

    1. 什么是Spring框架?

      1.1 概念

        SpringFrameWork是轻量级容器,它可以使用Struts和webwork等众多的web应用程序结合使用,也可以单独使用。

      1.2 核心技术

        面向切面(aspect-oriented programming AOP)  控制反转(inversion of control IOC)。

      1.3 特点

        轻量:不依赖于其他的对象,单独使用容器:xml中设置声明周期和配置。

         框架:系统中的对象通过xml文件配置组合起来的。

    2. Spring框架由哪些模块组成,模块有哪些功能?

      2.1 Spring Core

        Core封装包是框架的最基础部分,提供IOC和依赖注入特性。基础概念是:BeanFactory,它提供对Factory模式的经典实现来消除对程序性单例模式的需要,并真正地允许从程序逻辑中分离出依赖关系和配置。

      2.2 Spring Context

        构建于Core封装包基础上的Context封装包,提供了一种框架式的对象访问方法,有点像JNDI注册器。Context封装包的特性得自于Beans封装包,并添加了对国际化(I18N)的支持(例如资源绑定),事件传播,资源装载方式和Context的透明创建,比如Servlet容器。

      2.3 Spring DAO

        DAO(Data Access Object)提供了JDBC抽象层,它可消除较长的JDBC编码和解析数据库产商特有的错误代码。并且,JDBC封装包还提供了一种比编程性更好的声明性事务管理方法,不仅仅是实现了特定接口,而且对所有的POJOs(plain old Java object)都适用。

      2.4 Spring ORM

        ORM封装包提供了常用的“对象/关系”映射APIs集成层。其中包括JPA、JDO、Hibernate和iBatis,利用ORM封装包,可以混合使用所有Spring提供的特性进行“对象/关系”映射,如前面提到的简单声明性事物管理。

      2.5 Spring AOP

        AOP模块是Spring的AOP库,提供了AOP(拦截器)机制,并提供常用的拦截器,供用户自定义和配置。

      2.6 Spring web

        web模块提供对常见框架如Struts1,webwork(Struts2),jsf的支持,Spring能够管理这些框架,将Spring的资源注入给框架,也能在这些框架的前后插入拦截器。

      2.7 Spring web MVC

        Spring中的MVC封装包提供了web应用的Model-View-Controller(MVC)实现。Spring的MVC框架并不是仅仅提供一种传统的 实现,它提供了一种清晰的分离模型,在领域模型代码和web from之间。并且还可以借助Spring框架的其他特性。

    3. 为什么需要使用Spring?

      1.方便解耦,简化开发

        通过Spring提供的IOC容器,可以将对象之间的依赖关系交由Spring进行控制,避免硬编码造成的过度程序耦合。

      2.AOP编程的支持

        通过Spring提供的AOP功能,方便进行面向切面的编程,如性能监测,事务管理,日志记录等。

      3.声明式事务的支持

      4.方便集成各种优秀框架

      5.降低java EE API的使用难度

        如对JDBC,JavaMail,远程调用提供了简便封装

    4. 什么是IOC,为什么使用IOC?

      IoC全称Iversion of Controller,控制反转。

        概念是说不用创建对象,而只需要描述它如何被创建。不在代码里直接组装组件和服务,但是要在配置文件里描述哪些组件需要哪些服务,之后一个容器(IOC)容器负责把他们组装。

    5. 什么是AOP,为什么使用AOP?

      AOP全称aspect-oriented programming面向切面编程。

        AOP,面向切面编程,就是吧可重用的功能提取出来,然后将这些通用功能在合适的时织入到应用程序中,比如事务管理,权限控制,日志记录,性能统计等。

        AOP并没有帮助我们解决任何新的问题,它只是提供了一种更好的办法,能够用最少的工作量来解决现有的一些问题,使得系统更加健壮,可维护性更好。

    6. 什么是Spring的事物管理?

      事务就是对一系列的数据库操作(比如插入多条数据)进行统一的提交或者回滚操作,如果插入成功,那么一起成功,如果中间有一条出现异常,那么回滚之前的所有操作。这样可以防止脏数据的出现,防止数据库的数据发生错误。

      开发中为了避免这一种情况一般会进行事物管理。

      Spring的声明式事务通常是指在配置文件中对事务进行配置声明,其中包括很多声明属性,它是通过Spring Proxy帮做代理,自己不用额外的写代码,只要在Spring配置文件中声明就好,通常用在数据库的操作里面。

      编程式事务就是指通过硬编码的方式做事务处理,这种处理方式需要写代码,事务中的逻辑可以自己定制;可以是数据库的东西,也可以是其他操作。

      Spring中也有自己的事务管理机制,一般是用TransactionMananger进行管理,可以通过Spring的注入来完成此功能。

    7. Spring框架支持哪几种bean作用域?

      singleton:默认值,bean在每个Spring ioc容器只有一个实例。

       prototype:一个bean的定义可以有多个实例。

       request:每次http请求都活创建一个bean,该作用域仅在基于web的spring ApplicationContext情形下有效。

       session:在一个HTTP Session中,一个人bean定义对应一个实例,该作用域仅在基于web的Spring ApplicationContext情形下有效。

    8. Spring获取连接池的几种方式?

      1.DBCP 数据源

       2.C3P0 数据源

       3.Spring的数据源实现类(DriverManagerDataSource)

       4.获取JNDI数据源

    欢迎交流学习
  • 相关阅读:
    Asc函数与Chr函数
    IsNumeric 函数
    VB之Collection---Collection集合类
    [转]android.support.v4.app.Fragment和android.app.Fragment区别
    【原创】LogCat信息演示Activity生命周期
    [转]基础总结篇之一:Activity生命周期
    [转]两分钟彻底让你明白Android Activity生命周期(图文)
    [转]Android Studio常用快捷键
    [转] Android 命名规范 (提高代码可以读性)
    [转]Android ListView最佳处理方式,ListView拖动防重复数据显示,单击响应子控件
  • 原文地址:https://www.cnblogs.com/douzi520/p/10013183.html
Copyright © 2011-2022 走看看