Hello World我爱编程

spring框架面试

2018-03-15  本文已影响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 接口的实现类,拦截业务。

   

   

上一篇 下一篇

猜你喜欢

热点阅读