Spring之基础知识
1、ApplicationContext VS BeanFactory
l 二者来自的 jar 包不同;BeanFactory 来自 spring.beans.jar;ApplicationnContext 来自 spring.context.jar 下。
l BeanFactory 和 ApplicationContext 都是属于 Spring下的顶级接口;ApplicationContext 属于 BeanFactory 的子类,BeanFactory 的所有功能 ApplicationContext 都是拥有的,除此之外,ApplicationContext 还有对国际化支持,支持资源的访问,支持事件的传播…
l 对于执行性能来说,ApplicationContext 是一次性加载并初始化所有的 bean 的,所以它的启动过程可能比较慢,但是后续的执行比较快;而 BeanFactory 是需要哪个类才去加载哪个类,因此 BeanFactory 占用的资源更少,启动更快,单后续的还行可能会慢一些。
2、@Autowired 和 @Resource 的区别
l @Autowired 来自 Spring 框架,而 @Resource 来自于JDK
l 作用范围不同,使用 @Autowired 可以进行属性注入,Setter 注入,构造器注入;而 @Resource 只能进行属性注入和Setter 注入
l 功能不同,@Resource 可以配合更多的属性进行使用,而 @Autowired 支持的属性较少,比如使用 @Resource 可以配合 name 属性进行使用,从而完成对象的别名注入。