zoukankan      html  css  js  c++  java
  • Spring 问与答

    1.  Spring 的工作原理与特性有哪些?

    答:Sping的主要模块有:

    1-1. Spring Core核心容器提供Spring框架的基本功能。核心容器的主要组件是BeanFactory,她是工厂模式的实现。BeanFactory使用控制反转(Ioc)模式将应用程序的配置和依赖性规范与实际的应用代码程序分开,BeanFactory是用来加载和管理Spring Bean definition的。(利用IoC模式将配置与代码分离)

    1-2. Spring AOP通过配置管理特性,Spring AOP模块直接将面向切面的编程功能集成到了Spring框架中,所以可以很容易的使Spring框架管理的任何对象支持 AOP。Spring AOP模块为基于Spring的应用程序中的对象提供了事务管理服务。通过使用Spring AOP,不用依赖于EJB组件,就可以将声明性事务管理集成到应用程序中。

    1-3. Spring ORMORM是一类框架的总称,完成面向对象的程序设计语言到关系数据库的映射。 Spring框架集成了若干ORM框架,从而提供了ORM的对象关系工具,其中包括 JDO、Hibernate、iBatis和TopLink。所有这些都遵从Spring的通用事务和DAO异常层结构。

    1-4. Spring DAO Spring定义了一套面向DAO层的异常体系,可用该结构来管理异常处理和不同数据供应商抛出的异常错误信息。异常层次结构简化了错误处理,并且大大的降低 了需要编写的异常代码数量(例如,打开和关闭连接),并为各种支持的持久化技术提供了异常转换器。这样,我们在设计DAO接口时,就可以抛开具体的实现技术,定义统一的接口。Spring为不同持久化技术(jdbc,hibernate,ibatis,jpa,jdo,toplink)提供了不同的模板类

    1-5. Spring WEBWeb上下文模块建立在上下文模块(Context)的基础之上,为基于Web服务的应用程序提供了上下文的服务。所以Spring框架支持 Jakarta Struts的集成。Web模块还简化了处理多部分请求及将请求参数绑定到域对象的工作。

    1-6. Spring上下文(Context):Spring上下文是一个配置文件,向Spring框架提供上下文信息。Spring上下文包括企业服务,例如 JNDI、EJB、电子邮件、国际化校验和调度功能。

    1-7. Spring MVCSpring的MVC框架是一个全功能的构建Web应用程序的MVC实现。通过策略接口,MVC框架变成为高度可配置的,MVC容纳的大量视图技术,包括JSP、Velocity、Tiles、iText和Pol

     

    1.  Spring bean 有几个作用域: singleton, protype,  request, session
    2.  AOP Advice(AOP通知)分为六种: (其中AOP有基于XML Schema, 和基于annotation方式的)
        2.1  
    前置通知beforeAdvice,   
        2.2 后置通知afterAdvice,  
        2.2.1 后置返回After returning Advice
        2.2.2 后置异常After throwing Advice
        2.2.3 后置最终After finally Advice  
       2.3 环绕通知aroundAdvice, 
        
    3.  spring 的注入方式: 构造方法, setter方法(常用),  接口方法(不推荐)
    4.  <context:annotation-config/>开启对注解的支持.
    5.  <aop:aspectj-autoproxy/>来开启注解风格的@AspectJ支持;
    6.  AOP有三种植入切面的方法:  
         6.1:  编译期织入,   这要求使用特殊的Java编译器,AspectJ是其中的代表者.
         6.2:  类装载期织入,而这要求使用特殊的类装载器,AspectJ和AspectWerkz是其中的代表者.
         6.3:  动态代理织入,在运行期为目标类添加增强生 成子类的方式,Spring AOP采用动态代理织入切面.
    7.  Spring AOP使用了两种代理机制:
       7.1:  一种是基于JDK的动态代理(只提供基于接口的代理, 不支持类代理)
       7.2: 另一种是基于CGLib的动态代理(支持类的代理)
    8.  Spring一共分几块:                                          
       8.1   Spring core 提供Spring框架的基本功能。核心容器的主要组件是BeanFactory,她是工厂模式的实现。
                                   BeanFactory使用控制反转(Ioc)模式将应用程序的配置和依赖性规范与实际的应用代码程序
                                   分开。
       8.2   Spring ORM:  Spring框架集成了若干ORM框架,从而提供了ORM的对象关系工具,其中包括 JDO、 
                                   Hibernate、iBatis和TopLink。所有这些都遵从Spring的通用事务和DAO异常层结构。
            
       8.3.  Spring  Web:  Web上下文模块建立在上下文模块(Context)的基础之上,为基于Web服务的应用程序提供
                                   了上下文的服务。所以Spring框架支持 Jakarta Struts的集成。Web模块还简化了处理多部分
                                    请求及将请求参数绑定到域对象的工作。
     
       8.4.  Spring  AOP:   通过配置管理特性,Spring AOP模块直接面向方面的编程功能集成到了Spring框架中,
                                    所以可以很容易的使Spring框架管理的任何对象支持 AOP。Spring AOP模块为基于Spring
                                    的应用程序中的对象提供了事务管理服务。通过使用Spring AOP,不用依赖于EJB组件,
                                   就可以将声明性事务管理集成到应用程序中。
     
       8.5   Spring  IoC: 
       8.6   Spring  Context:  Spring上下文是一个配置文件,向Spring框架提供上下文信息。          
                                         Spring上下文包括企业服务,例如 JNDI、EJB、电子邮件、国际化校验和调度功能。
     
     
     
    5、Rails中大量使用Convention over Configuration的思想,SpringMVC在2.0后也引入了CoC,请简单描述一下SpringMVC的CoC ??

     

    http://www.cnblogs.com/rushoooooo/archive/2011/08/28/2155960.html
     

    1.   Spring 事物隔离有五个不同的事务隔离级别 

        (default,   committed, uncommitted, read, serializable)
    1.1、ISOLATION_DEFAULT    使用数据库默认的事务隔离级别.另外四个与JDBC的隔离级别相对应 
     
    1.2、ISOLATION_READ_COMMITTED   (提交读)  
       保证一个事务修改的数据提交后才能被另外一个事务读取。
       另外一个事务不能读取该事务未提交的数据。
       这种事务隔离级别可以避免脏读出现,但是可能会出现不可重复读和幻像读
    1.3、ISOLATION_READ_UNCOMMITTED (未提交读)
        这是事务最低的隔离级别,它允许另外一个事务可以看到这个事务未提交的数据。
        这种隔离级别会产生脏读,不可重复读和幻像读
     
    1.4、ISOLATION_REPEATABLE_READ (重读)        
    这种事务隔离级别可以防止脏读,不可重复读。但是可能出现幻像读。它除了保证一个事务
     不能读取另一个事务未提交的数据外,还保证了避免下面的情况产生(不可重复读)
    1.5、ISOLATION_SERIALIZABLE           (系列化)         
     这是花费最高代价但是最可靠的事务隔离级别。事务被处理为顺序执行。
     除了防止脏读,不可重复读外,还避免了幻像读
         
    2.  事务的7种传播属性
    (propagation_:   required, requires_new, nested, supports, not_supported, mandatory, never)
    2-1.   PROPAGATION_REQUIRED,               加入当前正要执行的事务, 如果没有当前事务,那么就起一个新的事务,这是最常见的选择。
    2-2.   PROPAGATION_REQUIRES_NEW      新建事务,如果当前存在事务,把当前事务挂起
    2-3.   PROPAGATION_NESTED                    和requires new不同的是,子,父事务一起提交。也就是说,如果父事务最后回滚,子事物也要回滚的
    2-4.   PROPAGATION_SUPPORTS               支持当前事务,如果当前没有事务,就以非事务方式执行。
    2-5.   PROPAGATION_NOT_SUPPORTED   以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。 
    2-6.   PROPAGATION_MANDATORY         支持当前事务,必须在一个事务中运行。 如果当前没有事务 。否则,他就要抛出异常
    2-7.   PROPAGATION_NEVER                      以非事务方式执行,如果当前存在事务,则抛出异常。 
     
    3、Spring 事物的特性:ACID
    3.1 原子性(Atomicity)   :     最小单位,不可分割,要么全做,要么不做.
    3.2 一致性(Consistency):    事物执行前后,数据库数据都是正确的,一致的
    3.3 隔离性(Isolation)    :   多个事物之间不影响(依赖于事物的隔离属性)
    3.4 持久性(Durability)   :    事物一旦完成,即是永久保留的
     
    4.  事务类型
    4.1  按系统结构:本地事物,        分布式事务
    4.2  按应用厂商:JDBC事务,      JTA事务
    4.3  按作用域   : 本地事务,        全局事务
    4.4  按编程实现: 编程时事务,   声明式事务
     
     
    Spring学习需要了解的意义:
    1.  AOP
    2.  AOP proxy
    3.  IoC   ,   DI
    4. ApplicationContext
     
     
     
     

     

     

     

  • 相关阅读:
    PHP安装linux
    nginx 安装
    Redis安装
    linux启动http服务
    收藏的有用的网页
    laravel框架部署后有用命令
    .net 报错access to the path c: empimagefilesmsc_cntr_0.txt is denied
    oracle 触发器
    学习Auxre记录
    mysql数据库索引
  • 原文地址:https://www.cnblogs.com/dragonflyyi/p/2687000.html
Copyright © 2011-2022 走看看