Spring IOC 相关的面试题
Spring最基础的部分就是IOC,对IOC的理解程度从某个方面代表着你对Spring 的理解程度,看了网上的一些面试题,针对Spring IOC相关的重点是下面几个:
1、Spring中Bean 的生命周期是怎么样的?
2、Spring IOC是如何实现的,如何加载Bean,如何创建单例Bean?
3、BeanFactory和ApplicationContext之间的关系?
4、BeanFactory和FactoryBean之间的关系?
5、Spring Bean有哪些扩展点?
下面试着对上述几个问题做一下回答。
1、Spring中Bean的生命周期从大方面讲是定义创建实例——》初始化——》使用——》销毁,Spring在初始化后BeanFactory实例化后,就加载Bean定义(xml配置、注解或Java配置文件)配置,依次生成每个类对应Bean的单例对象,然后填充对象属性(包括注入依赖对象,此时若依赖对象还没创建,会尝试先创建并初始化依赖Bean对象后再继续当前bean实例的初始化),然后开始bean对象的初始化,此处用户可以通过@PostConstruct、继承InitializingBean类或指定init-method的方法自定义自己的初始化方法(如果上面上个方法同时存在,会以@PostConstruct、继承InitializingBean类或指定init-method方法的次序依次执行)。注意:@PostConstruct能起作用,必须在bean配置前启用注解,可以通过配置<context:annotation-config/>或<context:component-scan base-package="com.imooc.service" />实现。
2、简单说IOC的实现是依赖注入。具体参考:Spring源码阅读——Bean的加载和获取过程
3、Spring中ApplicationContext和beanfactory区别 - CSDN博客
4、Spring BeanFactory与FactoryBean的区别及其各自的详细介绍于用法
Spring IOC 相关的面试题的更多相关文章
- Spring IOC知识点一网打尽!
前言 只有光头才能变强 回顾前面: 给女朋友讲解什么是代理模式 包装模式就是这么简单啦 单例模式你会几种写法? 工厂模式理解了没有? 在刷Spring书籍的时候花了点时间去学习了单例模式和工厂模式,总 ...
- 关于Spring IOC (DI-依赖注入)需要知道的一切
关联文章: 关于Spring IOC (DI-依赖注入)你需要知道的一切 关于 Spring AOP (AspectJ) 你该知晓的一切 <Spring入门经典>这本书无论对于初学者或者有 ...
- 关于Spring IOC (DI-依赖注入)
<Spring入门经典>这本书无论对于初学者或者有经验的工程师还是很值一看的,最近花了点时间回顾了Spring的内容,在此顺带记录一下,本篇主要与spring IOC相关 ,这篇博文适合初 ...
- Spring IOC 巨多 非常 有用
关联文章: 关于Spring IOC (DI-依赖注入)你需要知道的一切 关于 Spring AOP (AspectJ) 你该知晓的一切 <Spring入门经典>这本书无论对于初学者或者有 ...
- 关于Spring IOC (DI-依赖注入)你需要知道的一切
<Spring入门经典>这本书无论对于初学者或者有经验的工程师还是很值一看的,最近花了点时间回顾了Spring的内容,在此顺带记录一下,本篇主要与spring IOC相关 ,这篇博文适合初 ...
- Spring Ioc和依赖注入
总结一下近来几天的学习,做个笔记 以下是Spring IoC相关内容: IoC(Inversion of Control):控制反转: 其主要功能可简单概述为:将 用 new 去创建实例对象,转换为让 ...
- J2EE进阶(十四)超详细的Java后台开发面试题之Spring IOC与AOP
J2EE进阶(十四)超详细的Java后台开发面试题之Spring IOC与AOP 前言 搜狐畅游笔试题中有一道问答题涉及到回答谈谈对Spring IOC与AOP的理解.特将相关内容进行整理. ...
- 死磕Spring之IoC篇 - 深入了解Spring IoC(面试题)
该系列文章是本人在学习 Spring 的过程中总结下来的,里面涉及到相关源码,可能对读者不太友好,请结合我的源码注释 Spring 源码分析 GitHub 地址 进行阅读 Spring 版本:5.1. ...
- 【小家Spring】Spring IoC是如何使用BeanWrapper和Java内省结合起来给Bean属性赋值的
#### 每篇一句 > 具备了技术深度,遇到问题可以快速定位并从根本上解决.有了技术深度之后,学习其它技术可以更快,再深入其它技术也就不会害怕 #### 相关阅读 [[小家Spring]聊聊Sp ...
随机推荐
- _reincarnation
可以设定转生等级和转生需求.来奖励转生 `level`转生等级 `reqId` 转生需求 `rewId` 转生奖励 `gossipText` 菜单显示
- python @的用法
来自:https://www.cnblogs.com/jmlovepython/p/7427297.html @相当于在一个函数中调用另一个函数,并执行操作 def funA(x): print(x( ...
- js时间戳转化成日期格式
function timestampToTime(timestamp) { var date = new Date(timestamp * 1000);//时间戳为10位需*1000,时间戳为13位的 ...
- C# 实现邮件收取发送功能
.Net调用QQ邮箱发送邮件 话说网上发送邮件的代码很多,但是我由于不细心,导致拿别人的代码发送邮件老是失败,今天就说说几个要注意的地方吧!!! ? 1 2 3 4 5 6 7 8 9 10 11 ...
- linux安装redis ,mariadb
linux下安装软件方法 1 rpm (不推荐使用) 2 yum 安装(非常方便快捷) 3 编译安装(需要自定制的时候才使用) 安装mariadb(mysql) 1 使用官方源安装mariadb vi ...
- Bilinear CNN与 Randomly Wired Neural Network
最近主要学习了两篇论文以及相关的代码. 1.Bilinear CNN 这篇论文主要是在细粒度分类上应用的,在全连接层之前,在所有的卷积计算完成之后,进行的Bilinear计算,关键的代码如下: def ...
- 『TensorFlow』读书笔记_进阶卷积神经网络_分类cifar10_下
数据读取部分实现 文中采用了tensorflow的从文件直接读取数据的方式,逻辑流程如下, 实现如下, # Author : Hellcat # Time : 2017/12/9 import os ...
- Thread线程相关方法详解
1.sleep() 使当前线程(即调用该方法的线程)暂停执行一段时间,让其他线程有机会继续执行,但它并不释放对象锁.也就是说如果有synchronized同步快,其他线程仍然不能访问共享数据.注意该方 ...
- html和jsp区别
html和jsp的区别及优缺点 ♥ HTML(Hypertext Markup Language)文本标记语言,它是静态页面,和JavaScript一样解释性语言,为什么说是解释性语言呢?因为,只 ...
- spring boot多模块项目找不到类
项目结构 mapper依赖pojo, service依赖mapper和pojo portal依赖pojo和service. 全都是maven模块 <groupId>com.haitian& ...