2Spring之核心容器
Posted lawrence林
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2Spring之核心容器相关的知识,希望对你有一定的参考价值。
核心容器提供了Spring框架的基本功能。
主要包括:spring-core
,spring-beans
,spring-context
,spring-context-support
,spring-expression
五个模块
spring-core
和spring-beans
作为框架的基础部分,提供了IoC和依赖注入功能(DI)
spring-context
建立在spring-core
和spring-beans
的基础上,是一个配置文件
spring-context-support
对集成的第三方库提供支持,如:缓存(EhCache...),邮件(JavaMail),调度和模板引擎(FreeMarker...)
spring-expression
表达式语言,用于在运行时查询和操作对象
spring-core
的主要组件是BeanFactory,从名字得知,它是一种工厂模式的实现;
BeanFactory通过控制反转(IoC)模式将应用程序的配置和依赖性(类与类之间的关系)规范 与 实际的应用程序代码分开(尤指业务代码),从而降低了类与类之间的耦合度;
IoC(Inversion of Control)控制反转可以分为“控制”和“反转”
控制:获取对象的方式
反转:从主动获取变成了被动获取
主动式:
XxxServlet{
//以往程序都是自己主动创建(new)对象来建立类之间的依赖关系(例如:Servlet依赖于Service)
XxxService xs = new XxxService();
}
!!主动式:是在编译时绑定对象(即确立类之间关系)
被动式
//资源的获取不是我们自己创建,而是交给一个容器来创建和设置
//XxxServlet依赖于XxxkService,容器帮我创建XxxkService对象,并把XxxService对象赋值过去
XxxServlet{
XxxService xs;
public void test1(){
xs.checkout();
}
}
!!被动式:是在运行时绑定对象(在容器初始化 到 容器初始化完成之前确立类之间的关系)
DI(Dependency injection)依赖注入:
容器知道哪个组件(类)运行的时候,需要另外一个类(组件);容器通过反射的形式,将容器中准备的XxxService注入(利用反射给属性赋值)到XxxkServlet
以上是关于2Spring之核心容器的主要内容,如果未能解决你的问题,请参考以下文章