1、Spring怎样定义类的作用域

通过bean 定义中的scope属性来定义。

2、Spring支持的几种bean的作用域

支持以下五种bean的作用域:

singleton : bean在每个Spring ioc 容器中只有一个实例。(缺省默认)

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

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

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

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

3、Spring支持的事务管理类型

编程式事务管理:这意味你通过编程的方式管理事务,给你带来极大的灵活性,但是难维护。

声明式事务管理:这意味着你可以将业务代码和事务管理分离,你只需用注解和XML配置来管理事务。

4、什么是控制反转(IOC)?什么是依赖注入?

控制反转(IOC) : 传统应用程序是由我们自己在对象中主动控制去直接获取依赖对象,现在由容器帮我们查找及注入依赖对象,对象只是被动的接受依赖对象,所以是控制反转。

依赖注入:组件之间依赖关系由容器在运行期决定,形象的说,即由容器动态的将某个依赖关系注入到组件之中。通过依赖注入机制,我们只需要通过简单的配置,而无需任何代码就可指定目标需要的资源,完成自身的业务逻辑,而不需要关心具体的资源来自何处,由谁实现。

实现方式:构造器注入、Setter方法注入、接口注入。注解装配在默认情况下是不开启的,为了使用注解装配,我们必须在Spring配置文件中配置 <context:annotation-config/>元素。

5、Spring由几大核心组件?

a、Bean 组件

b、Context 组件

c、Core 组件

6、Spring MVC核心工作流程 ?

a、用户向服务器发送request请求,请求被SpringMVC中央控制器DispatcherServlet捕获;

b、DispatcherServlet对请求URL进行解析,得到请求资源标识符(URI)。然后根据该URI,调用HandlerMapping映射处理器,将请求发送给指定的Controller。

c、 Controller执行完成后,将返回的数据信息封装到ModelAndView对象中,最后通过ViewResolver视图解析器选择一个合适的View 渲染视图返回界面。

7、spring事务隔离级别(五种面试最好全部说出来)

a、DEFAULT 这是一个PlatfromTransactionManager默认的隔离级别,使用数据库默认的事务隔离级别.

b、未提交读(read uncommited) : 脏读,不可重复读,虚读都有可能发生 。是最低的事务隔离级别,它允许另外一个事务可以看到这个事务未提交的数据。

c、已提交读 (read commited): 避免脏读。但是不可重复读、虚读有可能发生 。保证一个事物提交后才能被另外一个事务读取。另外一个事务不能读取该事物未提交的数据。Oracle 默认

d、可重复读 (repeatable read): 这种事务隔离级别可以防止脏读,不可重复读。但是可能会出现幻象读。它除了保证一个事务不能被另外一个事务读取未提交的数据之外还避免了以下情况产生(不可重复读)。Mysql 默认

e、串行化的 (serializable) : 这是花费最高代价、效率差但最可靠的事务隔离级别。事务被处理为顺序执行。除了防止脏读,不可重复读之外,还避免了幻象读(避免三种)。

8、Spring事务特性(四种面试最好全部说出来)

a、原子性 (atomicity): 一个事务中所有对数据库的操作是一个不可分割的操作序列,要么全做要么全不做。

b、一致性 (consistency): 事务的执行的前后数据的完整性保持一致.

c、隔离性 (isolation): 一个事务执行的过程中,不应该受到其他事务的干扰

d、持久性(durability) : 一个事物一旦提交,它对数据库的改变就是永久的

9、Spring事务七个传播特性(七种面试说一两个即可)

a、Propagation.REQUIRED (默认) 面试必须说出来这个。

调用方已经存在事务,则加入到同一个事务中运行,否则,自启一个事务

b、Propagation.REQUIRES_NEW

无论何时自身都会开启新事务

c、Propagation.SUPPORTS

调用方存在事务,则加入到同一个事务中运行,若不存在事务,则以非事务的方式运行

d、Propagation.NOT_SUPPORTED

调用方存在事务,则会被挂起,直到被调用方运行完毕后,事务恢复。

e、Propagation.MANDATORY

调用方存在事务,则加入到同一个事务中运行,若不存在,则抛出异常

f、Propagation.NEVER

调用方存在事务,则抛出异常

g、Propagation.NESTED

若调用方存在事务,则运行一个嵌套事务,若调用方不存在事务,则以Propagation.REQUIRED的方式运行,即开启一个新的事务

10、简述Spring Bean的生命周期

实例化、初始化、使用、销毁。

关键词:BeanFactoryPostProcessor 、BeanPostProcessor 、init-method/destroy-method

最新文章

  1. [修正] Firemonkey TFrame 存档后,下次载入某些事件连结会消失(但源码还在)
  2. CORS解决ajax跨域
  3. zabbix告警“Zabbix poller processes more than 75% busy”
  4. Django 源码小剖: 响应数据 response 的返回
  5. ajax 清除缓存
  6. 解决MySQL不允许从远程访问的方法
  7. SQL优化的四个方面,缓存,表结构,索引,SQL语句
  8. VC中支持中文的字符串比较函数
  9. mini2440触摸屏驱动分析
  10. oracle 10g WMSYS.WM_CONCAT 函數的用法
  11. Moutain Tai notes
  12. Java实现MD5加密_字符串加密_文件加密
  13. Virtual Hosts
  14. Web前端开发推荐书籍
  15. java运行原理剖析
  16. Linux启动流程与模块管理(15)
  17. oracle 11g RAC数据库监听配置相关
  18. Zookeeper笔记之quota
  19. H5微信自定义分享链接(设置标题+简介+图片)
  20. 20155330 实验二 Java面向对象程序设计

热门文章

  1. 异常关机,同时出现:Last_IO_Errno: 1236,Last_SQL_Errno: 1594
  2. mysql查找表名
  3. 如何使用Keka for Mac提取受密码保护的文件?用Keka提取文件的格式
  4. SQL Server 2008 R2 数据库备份文件.bak如何挂载到【阿里云&amp;#183;独立虚拟主机数据库】上
  5. Android 获取手机(ios,android)的设备唯一码(mac地址, IMEI)
  6. list的过滤操作
  7. python学习笔记(一)python简介和基础
  8. 企业打开云HBase的正确方式,来自阿里云云数据库团队的解读
  9. Python3解leetcode Lowest Common Ancestor of a Binary Search Tree
  10. 使用kindeditor直接粘贴本地图片或者是qq截图