依赖注入
Spring 是一个轻量级
IoC 容器,管理 POJO(普通的Java对象),是非侵入式
的容器,支持 AOP 编程
apache tomcat 是 servlet、jsp、filter、listener 容器
jboss、weblogic、websphere 是 ejb 容器
轻量级:你的业务类必须
继承框架 或 容器中的父类型 / 接口,是侵入式
IoC 控制反转 - Rod Johnson
- IoC 控制反转,创建和装配控制权
- POJO 作用域
- 单例
- 原型 每次都创建一个
- 请求(Web)
- 会话(Web)
DI 依赖注入 - Bob
- 构造方法注入
- setter 方法注入
- 接口注入 - EJB(重量级)
// 委托给容器管理组件的生命周期(托管)
@Component
class A {
}
class B {
A a;
// 方式一
B() {
a = new A();
}
// 方式二
B(A a) {
this.a = a;
}
// 方式三
void setA(A a) {
this.a = a;
}
void foo() {
// b 依赖 a
a.work();
}
}
容器
管理组件
的生命周期,组件依赖关系的自动装配
Spring Framework 框架
- spring core
- spring beans - BeanFactory
- spring aop
- spring context - ApplicationContext
- spring el
* ${a.b.c}
后期引入