spring框架面试

作者: 烦远远 | 来源:发表于2018-03-15 00:04 被阅读25次

    spring是开源的java ee框架,它是一个非侵入式的框架,引入组件对现有的类和结构没有影响,相当于一个平台,提供了扩展和整合的功能。并且是一个轻量化框架只有大概2MB.

    1.核心模块core

    核心模块是Spring的基本模块,它提供了Spring框架的基本功能。BeanFactory 是所有Spring应用的核心类。Spring框架是建立在这个模块之上的,这也使得Spring成为一个容器

    2.context模块

    spring context继承自beab factory 核心类。这个模块主要是对核心模块的扩展,丰富了一些功能。

    3. 解释AOP模块

    AOP模块用于发给我们的Spring应用做面向切面的开发, 很多支持由AOP联盟提供,这样就确保了Spring和其他AOP框架的共通性。这个模块将元数据编程引入Spring。

    4.解释抽象JDBC和DAO模块

    通过使用抽象JDBC和DAO模块保证了与数据库连接代码的整洁与简单,同时避免了由于未能关闭数据库资源引起的问题。它在多种数据库服务器的错误信息之上提供了一个很重要的异常层。它还利用Spring的AOP模块为Spring应用程序中的对象提供事务管理服务。

    5.解释对象/关系映射集成模块

    Spring通过提供ORM模块在JDBC的基础上支持对象关系映射工具。这样的支持使得Spring可以集成主流的ORM框架,包括Hibernate,  及Mybatis 。Spring的事务管理可以同时支持以上某种框架和JDBC。

    6..解释web模块

    Spring的web模块建立在应用上下文(application context)模块之上,提供了一个适合基于web应用程序的上下文环境。该模块还支持了几个面向web的任务,如透明的处理多文件上传请求及将请求参数同业务对象绑定起来。

    7.解释Spring MVC模块

    Spring提供MVC框架构建web应用程序。Spring可以很轻松的同其他MVC框架结合,但Spring的MVC是个更好的选择,因为它通过控制反转将控制逻辑和业务对象完全分离开来。它围绕着DispatcherServlet展开,浏览器客户端通过http发送请求给servlet,通过controller调用service处理请求后,再将结果返回给视图层。

    A.  Spring IoC容器:

    IOC控制反转,负责创建对象、管理对象(通过依赖注入)整合对象、配置对象以及管理这些对象的生命周期。

    a.IOC有什么优点?

    IOC或依赖注入减少了应用程序的代码量。它使得应用程序的测试很简单,因为在单元测试中不再需要单例或JNDI查找机制。简单的实现以及较少的干扰机制使得松耦合得以实现。IOC容器支持勤性单例及延迟加载服务。

    B.  Spring中的依赖注入是什么?DI

    依赖注入作为控制反转(IOC)的一个层面,通过IOC创建对象的时候把对象和依赖关系注册给spring,可以注入字符串甚至其他对象。 然后在运行期由spring自动实现对象关系的注入。比如DAO就会注入session factory.

    C.  有哪些不同类型的IOC(依赖注入)?

    a.构造器依赖注入:构造器依赖注入在容器触发构造器的时候完成,该构造器有一系列的参数,每个参数代表注入的对象。

    b.  Setter方法依赖注入:首先容器会触发一个无参构造函数或无参静态工厂方法实例化对象,之后容器调用bean中的setter方法完成Setter方法依赖注入。

    c.  注解实现。现在基本主要用注解来完成的,因为代码量少,省事儿。方便svn整合,不会出现多个人同时操作一个配置文件的情况。

    D.  AOP面向切面编程

    基本功能是:在某个方法运行之前或者之后固定的代码。比如service层的事物保护,它的原来的步骤是:开启事物―执行业务操作―然后提交回滚。开启事物和提交回滚是固定代码可以提取出来进行封装。aop就是针对这样的业务进行处理的。经过spring配置后,service层方法只写业务处理就行。相似的业务还有 记录日志,记录性能,异常处理等等切面业务。

    E.  框架中事物是怎么进行配置的

    a.  事物用aop配。首先注册目标类service 然后配置事务管理器,就是spring自带的切面类。然后配置一个事务拦截器。最后用aop:config 进行整合。

    F.  框架中哪里用到了ioc和aop

    a.  控制层 业务层 持久层 三层注入。

    b.  service加入日志和事物管理用了aop

    G.  spring  xml配置了什么

    我们用的spring 分两部分,与mybites整合。

    aop事务支持。

    1.首先配置数据源,用的是连接池组件c3p0

    2.配置sql sessionFactory工厂,注入数据源以及加载Mybatis sql文件。

    3.配置MapperScanner 用来注册mybatis接口以及注入sqlSessionFactory

    H.  说说公司框架

    1.用的是ssm版本都是3.2版本。

    ssh的配置:

    a.配置一个spring mvc.xml,引入包信息,扫描控制器,设置文件上传大小,给定前后坠。

    b.在web xml中配置一个编码filter。然后配一个servlet加载spring mvc xml和url  *.do.

        webxml中,加载spring.xml文件,配置监听器,配置servlet加载springmvc xlm文件,配置一个filter文件编码。

        spring mvc.xml中,扫描控制器,设置文件上传大小,指定前后坠名。

        spring.xml中,扫描service路径,连库配置用cp30组件,配置数据源路径,数据源中存放连库信息(连库协议啊,密码啊之类的,等待时间,数据库连接池信息)

      整合mybatis:

        配置一个核心模块,加载splSession工厂获取数据源dateSource。

        配置一个放接口的包路径。com.mapper

        配置事物管理器。

        配置拦截器,用正则来控制所有的service 接口的实现类,拦截业务。

       

       

    相关文章

      网友评论

        本文标题:spring框架面试

        本文链接:https://www.haomeiwen.com/subject/spccqftx.html