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接口
网友评论