- 面试模块
- 一、spring
spring是通用框架,被问到的几率是百分之百
-
源码部分
1.1 ApplicationContext和BeanFactory的区别答案:相同点:两者都是IOC容器,创建bean
① 功能范围不同:BeanFactory是spring底层接口,功能单一
ApplicationContext是应用上下文,继承BeanFactory的同时,还实现了更多功能;如:
继承ApplicationEventPublisher:应用事件
继承messageContext:国际化消息访问
继承ResourcePatternResolver :加载特定前缀的配置文件
②、装载bean的区别:
BeanFactory是延迟加载,启动的时候不会加载bean
ApplicationContext是启动默认完成所有bean的加载,可配置延迟加载(lazy-init=true/@Lazy)
1.2 ApplicationContext的实现类
①ClassPathXmlApplicationContext:类路径加载
②FileSystemXmlApplicationContext:文件系统路径加载
③AnnotationConfigApplicationContext:用于基于注解的配置
④WebApplicationContext:专门为web应用准备的
1.3
1.2 BeanFactory 和 FactoryBean 的区别
答案:相同点:两者都是接口
不同点:BeanFactory是IOC容器的底层接口和规范,是单个对象的创建工厂。
FactoryBean是灵活创建Bean类的接口,可以创建单例或多例对象
对象闯将会查询是否实现FactoryBean,getBean(***&***BeanName),实现与设计模式中的工厂模式和修饰器模式类似



