一线互联网公司面试真题合集Spring高级篇二

VIP免费
2024-12-11 5 0 885.94KB 24 页 5.9玖币
侵权投诉
1.spring IOC DI 的理解,它们有什么区别?
I o C I n v e r s e o f C o n t r o l 反转控制的概念,就是
将原本在程序中手动创建 UserService 对象的控
制权,交由 S p r i n g 框架管理,简单说,就是创
UserService 对象控制权被反转到了 S p r i n g
框 架
D I Dependency Injection 依赖注入,在
S p r i n g 框架负责创建 B e a n 对象时,动态的将依
赖对象注入到 B e a n 组 件
面试题: I o C D I 的区别?
I o C 控制反转,指将对象的创建权,反转到
S p r i n g 容 器 D I 依赖注入,指 S p r i n g 创 建
对象的过程中,将对象依赖属性通过配置进行注
2.BeanFactory ApplicationContext 接口有什么区
-A p p l i c a t i o n C o n t e x t 接口继承 BeanFactory
接口,S p r i n g 核心工厂是
B e a n F a c t o r y , B e a n F a c t o r y 采取延迟加载,第
一 次 getBean 时才会初始化 B e a n ,
A p p l i c a t i o n C o n t e x t 是会在加载配置文件时初
始 化 B e a n
A p p l i c a t i o n C o n t e x t 是 对 BeanFactory
展,它可以进行国际化处理、事件传递和 b e a n
自动装配以及各种不同应用层的 C o n t e x t 实 现
开发中基本都在使用 A p p l i c a t i o n C o n t e x t , w e b
项目使用 W e b A p p l i c a t i o n C o n t e x t ,很少用到
BeanFactory
1. BeanFactory b e a n F a c t o r y = n e w
X m l B e a n F a c t o r y (n e w
ClassPathResource("applicationContext.xml"
) ) ;
2. IHelloService h e l l o S e r v i c e =
(IHelloService)
beanFactory.getBean(" h e l l o S e r v i c e " ) ;
3. helloService.sayHello();
3.spring bean 实例化有哪些方式?
1)使用类构造器实例化(默认无参数)
1. < b e a n i d =" b e a n 1 "
c l a s s ="cn.itcast.spring.b_instance.Bean1">
< / b e a n >
2)使用静态工厂方法实例化(简单工厂模式)
1. / / 下面这段配置的含义:调用 B e a n 2 F a c t o r y
g e t B e a n 2 方法得到 b e a n 2
2. < b e a n i d = " b e a n 2 "
c l a s s ="cn.itcast.spring.b_instance.Bean2Fa
c t o r y " f a c t o r y - m e t h o d = " g e t B e a n 2 " > < / b e a n >
3)使用实例工厂方法实例化(工厂方法模式)
1. / / 先创建工厂实例 bean3Facory,再通过工
厂实例创建目标 b e a n 实 例
2. < b e a n i d = " b e a n 3 F a c t o r y "
c l a s s ="cn.itcast.spring.b_instance.Bean3Fa
c t o r y " > < / b e a n >
3. < b e a n i d = " b e a n 3 " f a c t o r y -
b e a n = " b e a n 3 F a c t o r y " f a c t o r y -
m e t h o d = " g e t B e a n 3 " > < / b e a n >
4.简单的说一下 spring 的生命周期?
1. 1)在配置 < b e a n > 元素,通过 i n i t - m e t h o d
指 定 B e a n 的初始化方法,通过 d e s t r o y - m e t h o d
指 定 B e a n 销毁方法
<beanid="lifecyclebean"class="cn.itcast.spri
ng.d_lifecycle.lifecyclebean"init-
method="setup"destroy-
method="teardown">需要注意的问题:
< / b e a n i d = " l i f e c y c l e b e a n " c l a s s = " c n . i t c a s t. s p
ring.d_lifecycle.lifecyclebean"init-
method="setup"destroy-
method="teardown">
1. * d e s t r o y - m e t h o d 只 对
s c o p e = "singleton" 有 效
2.
3. * 销毁方法,必须关闭
ApplicationContext 对 象 (手动调用),才会被调
1. ClassPathXmlApplicationContext
a p p l i c a t i o n C o n t e x t = n e w
ClassPathXmlApplicationContext("applicatio
nContext.xml") ;
2. applicationContext.close();
2)Bean 的完整生命周期 (十一步骤)【了解内
容,但是对于 s p r i n g 内部操作理解有一定帮
助 】
i n s t a n t i a t e b e a n 对象实例化
p o p u l a t e p r o p e r t i e s 封装属性
③如果 B e a n 实 现 B e a n N a m e A w a r e 执 行
setBeanName
④如果 B e a n 实 现 B e a n F a c t o r y A w a r e 或 者
A p p l i c a t i o n C o n t e x t A w a r e 设置工厂
setBeanFactory 或者上下文对象
s e t A p p l i c a t i o n C o n t e x t
⑤如果存在类实现 B e a n P o s t P r o c e s s o r (后处
B e a n ,执行
p o s t P r o c e s s B e f o r e I n i t i a l i z a t i o n
BeanPostProcessor 接口提供钩子函数,用来动
态扩展修改 B e a n (程序自动调用后处理 Bean)
摘要:

1.springIOCDIIoCInverseofControl!"UserService'()*+Spring./01234!"UserService'()567Spring./DI9DependencyInjection=>?@Spring./AB!"Bean'(EF=>'(?@6BeanGHIJK9IoCLDIMNOIoCP'(!")6SpringQRDI=>?@PSpring!"'(S'(=>TUVSWXYZ?@2.BeanFactory()...

展开>> 收起<<
一线互联网公司面试真题合集Spring高级篇二.pdf

共24页,预览5页

还剩页未读, 继续阅读

声明:本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。玖贝云文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知玖贝云文库,我们立即给予删除!

相关推荐

分类:计算机 价格:5.9玖币 属性:24 页 大小:885.94KB 格式:PDF 时间:2024-12-11

开通VIP享超值会员特权

  • 多端同步记录
  • 高速下载文档
  • 免费文档工具
  • 分享文档赚钱
  • 每日登录抽奖
  • 优质衍生服务
/ 24
客服
关注