IoC:控制反转
过程:
创建类对象
创建XML文件:
bean标签:使容器创建类对象
name:类对象名称
class:类的全限定名
创建测试用例:
读取配置文件:
A. new ClassPathXmlApplictionContext(); //获取到容器对象ApplictionContext,参数是xml文件名
B. new FileSystemXmlApplictionContext(); //获取到容器对象ApplictionContext,参数是xml绝对路径
通过容器对象的getBean方法获取类的实例
问题:
1. 对象什么时候创建
如果设置的是单例,容器被调用是创建(延迟创建为false或默认值),并且只创建一次;如果设置的是多例,对象实例化是被创建
2. bean里面还有别的什么属性?
scope="singleton":构造方法只调用一次,所以对象都是同一个(单例)
scope="prototype":创建几次对象构造方法调用几次,所以对象不是同一个(多例)
对象初始化:inti-merhod=""; //参数为方法名
对象销毁:destory-merhod=""; //参数为方法名
3. 创建出来的对象是单例还是多例,创建几个?
scope默认时,构造方法只调用一次,所以是单例
4. 属性怎么赋值
通过id或name都可以获取到对象|
5.是否延迟创建,通过以下标签设置 //仅单例时有效(多例都是延迟创建)
lazy-init="true" //true为是,延迟的时候只有实例化对象时才创建
6. 对象创建的方式
a. 默认调用的无参构造函数创建对象
b. 有参构造方式
c. 实例工厂方法
factory-bean=""; //
d. 静态工厂方法
factory-method=""; //创建对象调用的方法
规范:
id:不可重复,不接受特殊字符
name:可重复。接收特殊字符
工厂:
常见的有两种:ClassPathXmlApplictionContext和FileSystemXmlApplictionContext
依赖注入:
1. set方法注入
value:简单类型的注入
ref:对象类型的注入,指定的是对象
name为对象中的成员变量
2. 构造方法注入
3. p名称空间注入
4. spel注入
AOP:
JavaBean:
Spring框架由七个定义明确的模块组成: