MENU

Spring 面试题(Day01)

1.jpg

概要

最近在重拾Spring,搜集一些面试题,以后或许会用得到。

Day01 题目

简述Spring是什么

是一个轻量级IOC和AOP容器框架。
所谓轻量级,是相对于EJB而言的;在EJB中每一步都要实现,而实现的东西有些是用不到的,但必须要做。Spring和EJB相比,依赖资源少、消耗资源少,是一个分层的JavaSE/EE full-stack(一站式)轻量级开源框架。

Spring有什么优点

方便解耦,简化开发(高内聚,低耦合)
Spring就是一个大工厂(容器),可以将所有对象创建和依赖关系维护交给Spring管理,而Spring工厂就是用于生成bean的。
对AOP编程的支持、队声明式事务的支持、方便程序的测试、方便集成各种优秀框架、降低JavaEE API的使用难度。

简述Spring的核心容器有哪些

Spring框架是一个分层框架,它包含一系列的功能要素并被分为大约20个模块
核心容器有:beans、core、context、expression

如何理解IOC

IoC,控制反转。在传统Java开发中,new一个对象即可,而使用spring对象后,将由spring创建对象的实例,这个过程叫IoC。
通俗来讲,IoC就是将创建对象的权限由自己反转给了Spring,以后需要实例对象时,从Spring工厂(容器)中获得。

BeanFactory和ApplicationContext有什么异同

他们都是Spring的核心接口,都可以当做Spring容器。而ApplicationContext是BeanFactory的子接口
对于BeanFactory,是Spring最底层的接口(包括各种Bean定义、读取bean配置、管理bean实例化、控制bean生命周期、维护bean之间依赖关系);而ApplicationContext除了具有BeanFactory的功能,还提供了更完整的框架功能(MessageSource支持国际化、统一资源文件访问方式、提供在监听器中注册bean事件、同时加载多个配置文件、载入多个上下文)使每个上下文都专注特定层次(如web层)
而BeanFactory采用延迟加载来注入bean(只有当某个Bean被调用getBean()才实例化该Bean),如果Bean的某个属性没有注入,BeanFactory加载后第一次调用这个类的getBean()方法才会抛出异常;ApplicationContext在容器启动时就一次性创建了所有Bean这样在启动容器时就可以发现配置错误,有利于检查依赖是否注入。ApplicationContext确保当你需要bean时不需要等待,直接实例化bean
ApplicationContext唯一不足是占用内存空间,当Bean较多时程序启动较慢。
BeanFactory通常以编程的方式被创建,ApplicationContext还能以声明方式创建(ContextLoader)
他们都支持后处理方法(BeanPostProcessor/BeanFactoryPostProcessor)但BeanFactory需要手动注册,而ApplicationContext自动注册

提示

划线部分了解一下就可以了,其他的内容建议记住。


文章标题:Spring 面试题(Day01)
如果文中内容侵犯了您的权益,请及时与博主取得联系进行删除!
本站文章未经许可禁止转载,本文地址:https://blog.wanvale.com/archives/59/

Last Modified: January 7, 2021
Archives QR Code Tip
QR Code for this page
Tipping QR Code