Spring面试题

作者: 降龙_伏虎 | 来源:发表于2019-08-20 18:30 被阅读0次

1 使用Spring框架给开发人员带来哪些好处?

DI:依赖关系一目了然

IOC:统一管理bean

兼容成熟主流框架如:Hibernate、MyBatis、Quartz Timer、Shiro、Data等

模块化设计,即插即用,按需分配

声明式事务:将功能/非功能 代码进行分类

2 BeanFactory 和ApplicationConText有什么区别?

2.1 BeanFactory

是IOC容器的顶层标准接口,负责定义IOC标准规则和方法

2.2 ApplicationContext

BeanFactory  的子接口
通过PostProcessor/Aware监控IOC容器中Bean的声明周期
支持国际化
扩展统一资源(URL)读取方式 XmlApplicationContext/ClassPathXmlApplicationContext

3 SpringBean的生命周期?(怎样监控)

1 InitializingBean 和DisposableBean来回调
2 Aware接口
3 init() destory()
4 @PostContruct @PreDestory 注解

4 Spring Bean各作用域之间的区别?(Socpe)

 1 使用时生成,用完即销毁 prototype
 2 容器初始化时立即生成 singleton
 
 3 request 始化时立即生成, request 销毁时才销毁 request
 4 session 始化时立即生成, session 销毁时才销毁 request
 5 global-session Context

5 Spring 中Bean 线程安全吗?

Bean是否线程安全和Spring本身无关,要看Bean自身是否线程安全
属于提问中的陷阱,无论回答安全或不安全都是错误的

6 Spring中用到哪些设计模式?

单例模式
代理模式
策略模式
适配器模块
...

7 Spring中怎么处理循环引用?

BeanWrapper 生成时,分两个批次
第一次创建能创建的,未被创建的暂时跳过,做好标记
第二次创建时,处理第一次标记的未被创建的

8 Service层中如何获取applicationContext?

实现ApplicationContextAware接口

相关文章

网友评论

    本文标题:Spring面试题

    本文链接:https://www.haomeiwen.com/subject/fsvpsctx.html