spring相关概念
一、(控制反转)IOC
- 控制
控制什么?控制的应该是一个个对象,也就是控制对象的创建、销毁,以及对对象的管理。一般情况下,这些操作是由程序员来手动完成的,也就是程序员控制着对象。
例如:
public static void main(String[] args){
Student student = new Student(); //创建对象,这句代码是由程序员手动敲出来的
}
- 控制反转
就是不再由程序员“控制”一个个对象了,这些工作交给第三方资源来完成,而所谓的第三方资源就是IOC容器。
- IOC容器
IOC就是一套程序,这套程序的功能就是完成对象的创建、销毁、管理和依赖注入等工作。
- 依赖
什么是依赖?
假设有两个类:A 和 B,在类A中有类B的属性、方法或者是对象,我们称类A依赖类B,很好理解,类A干什么事,都需要用到类B,不是用到类B的属性,就是要调用类B的方法,可不就是对类B表示很“依赖”吗。就像我们还在上学的时候,没有经济来源,干什么事都得找父母要钱,依赖父母一样。
例如:类A依赖类B
//类B
//类B
class B {
public:
string name;
int age;
int grad;
public:
void B_speak()
{
cout << "我叫:" << name << endl;
}
};
//类A
class A {
public:
B* b = new B;
string B_name = b->name;
int B_age = b->age;
int B_grad = b->grad;
public:
void A_speak()
{
b->B_speak();
}
};
- 依赖注入DI
应该就是确定对象之间的依赖关系。但是不同于上面那种直接在类A中new出B的对象的情况。而是通过构造函数传入参数的方式,就这么点区别。
当然所有和对象有关的操作都是由第三方资源,即容器来完成的,依赖注入也是一样,在创建对象的时候,IOC容器会向各个对象的构造函数传入参数,完成各个对象之间依赖关系的绑定。
例如:
//类A
class A {
public:
string name;
int age;
int grad;
public:
A(B b)
{
b.B_speak();
}
};
- 什么是Bean
Bean就是对象,但是不是说任何一个对象都叫做Bean,要满足一些条件:
- 必须满足Bean的编写规范
- 所有属性为private
- 提供默认构造方法
- 提供getter和setter方法
- 实现serialzable接口
- 由Bean容器(也就时IOC容器)创建
应用程序就是由一个个的Bean构成。