码迷,mamicode.com
首页 > 编程语言 > 详细

关于spring面试题

时间:2018-06-26 13:16:57      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:eve   set   键值对   构造器   ott   持久   tor   pat   ide   

1.spring框架有哪些主要模块?

  • Spring Core,Spring的核心功能,用IOC容器,解决对象创建以及依赖关系,包含并管理应用对象的配置和生命周期
  • Spring DAO,Spring对jdbc的支持,可使用JdbcTemplate来简化数据操作
  • Spring ORM,Spring对ORM的支持,提供了对主流的对象映射关系框架的支持。提供了与多个第三方持久层框架的良好整合
  • Spring AOP,切面编程,减少了非业务代码的重复,降低了模块之间的耦合。比如:事务管理,日志,权限验证
  • Spring Web,Spring对Web模块的支持.
  • Spring JEE,Spring对JavaEE其他模块的支持。如EJB,JMS等

2.spring框架用到了哪些设计模式?

  • 单例模式:在Spring配置bean时,一般默认为单例
  • 依赖注入模式:
  • 工厂模式:BeanFactory用来创建对象实例
  • 代理模式:Spring AOP
  • 前端控制器模式:Spring提供了DispatcherServlet对请求进行处理
  • 模板方式模式:减少代码重复性

3.解释IOC(控制反转)、DI(依赖注入)

IOC:把对象的创建、初始化、销毁交给spring来管理,而不是由程序控制,实现控制反转。

DI:依赖注入,在Spring创建对象的过程中,将对象依赖属性通过配置进行注入

 

DI可以通过setter方法注入(设值注入)、构造器注入和接口注入三种方式来实现。

注意:

 

1.    使用构造器注入时,先实例化依赖的对象后,才实例化这个对象。而使用set方法时,Spring首先实例化对象,然后才实例化所有依赖的对象。

 

2.   当设值注入与构造注入同时存在时,先执行设值注入,再执行构造注入。

 

 

4.解释AOP(面向切面编程)

http://www.cnblogs.com/mcahkf/p/9065833.html 

5.BeanFactory和ApplicationContext有什么区别?

  • ApplicationContextBeanFactory的子接口。
  • BeanFactorySpring中最底层的接口,提供了最简单的容器的功能,只提供了实例化对象和拿对象的功能。而ApplicationContextSpring的一个更高级的容器,提供的额外的功能有:国际化的功能、消息发送、响应机制、统一加载资源的功能、强大的事件机制、对Web应用的支持等等。
  • 加载方式的区别:BeanFactory采用的是延迟加载的形式来注入Bean;而ApplicationContext是在Ioc启动时就一次性创建所有的Bean,好处是可以马上发现Spring配置文件中的错误,坏处是造成浪费。

 

6.spring配置Bean的方式

  • 基于XML的配置
  • 基于注解的配置
  • 基于Java的配置

 

 

6.Bean的作用域

  • singletonSpring IoC容器中只会存在一个共享的Bean实例Singleton作用域是Spring中的缺省作用域
  • prototype每次通过Spring容器获取prototype定义的bean时,容器都将创建一个新的Bean实例,每个Bean实例都有自己的属性和状态
  • request对不同的Http请求则会产生新的Bean,而且该bean仅在当前Http Request内有效。
  • session对不同的Session请求则会产生新的Bean,该bean实例仅在当前Session内有效。
  • global Session在一个全局的Http Session中,容器会返回该Bean的同一个实例,仅在使用portlet context时有效。

7.Spring Bean的生命周期

8.如何在Spring中注入一个Java Collection

Spring提供了以下四种集合类的配置元素:

 

  • <list> :   该标签用来装配可重复的list值。
  • <set> :    该标签用来装配没有重复的set值。
  • <map>:   该标签可用来注入键和值可以为任何类型的键值对。
  • <props> : 该标签支持注入键和值都是字符串类型的键值对。

 

8.Spring 事务传播属性以及隔离

事务传播属性:

  •     PROPAGATION_REQUIRED--支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。
  •   PROPAGATION_SUPPORTS--支持当前事务,如果当前没有事务,就以非事务方式执行。
  •   PROPAGATION_MANDATORY--支持当前事务,如果当前没有事务,就抛出异常。
  •   PROPAGATION_REQUIRES_NEW--新建事务,如果当前存在事务,把当前事务挂起。
  •   PROPAGATION_NOT_SUPPORTED--以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。
  •     PROPAGATION_NEVER--以非事务方式执行,如果当前存在事务,则抛出异常。

事务隔离级别:

  •   DEFAULT使用数据库默认的事务隔离级别.另外四个与JDBC的隔离级别相对应
  •   READ_UNCOMMITTED这是事务最低的隔离级别,充许令外一个事务可以看到这个事务未提交的数据。这种隔离级别会产生脏读,不可重复读和幻像读。
  •     READ_COMMITTED保证一个事务修改的数据提交后才能被另外一个事务读取。另外一个事务不能读取该事务未提交的数据
  •   REPEATABLE_READ这种事务隔离级别可以防止脏读,不可重复读。但是可能出现幻像读。它除了保证一个事务不能读取另一个事务未提交的数据外,还保证了避免下面的情况产生(不可重复读)
  •   SERIALIZABLE 这是花费最高代价但是最可靠的事务隔离级别。事务被处理为顺序执行。除了防止脏读,不可重复读外,还避免了幻像读。

 

 

 

 

 

 

·         代理模式:在AOPremoting中被用的比较多。

·         单例模式:在spring配置文件中定义的bean默认为单例模式。

·         模板方法模式:用来解决代码重复的问题。

·         前端控制器模式:Spring提供了DispatcherServlet来对请求进行分发。

·         依赖注入模式:贯穿于BeanFactory / ApplicationContext接口的核心理念。

·         工厂模式:BeanFactory用来创建对象的实例。

关于spring面试题

标签:eve   set   键值对   构造器   ott   持久   tor   pat   ide   

原文地址:https://www.cnblogs.com/mcahkf/p/9228556.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!