IOC解析:
考虑内聚性和耦合度,内聚和耦合是密切相关的,同其他模块存在高耦合的模块意味着低内聚,而高内聚的模块意味着该模块同其他
模块之间是低耦合。在进行软件设计时,应力争做到高内聚,低耦合。
- IOC底层原理分析:
xml解析
工厂模式
反射
1.工厂模式ioc过程:
eg:
第一步 xml配置文件,配置创建的对象
<bean id = "dao" class = "com.xxx.UserDao">
</bean>
class UserService{
execute(){
UserDao dao = UserFactory.getDao();
dao.add();
}
}
class UserDao{
add(){
......
}
}
class UserFactory{
public static UserDao getDao(){
String classValue = class; //xml解析
Class reflect = Class.forName(classValue); //通过反射创建对象
return (UserDao)reflect.newInstance();
}
}
//目的:
//耦合度降低最低限度
总结:
IOC思想基于IOC容器完成,IOC容器底层就是对象工厂
2. Spring 提供IOC容器实现两种方式: (两个接口)
(1)BeanFactory: IOC容器基本实现, 是Spring内部的使用接口, 不提供开发人员进行使用
**加载配置文件的时候不会创建对象,在获取对象(使用)才去创建对象*
(2)ApplicationContext: BeanFactory 接口的子接口,提供更多更强大的功能,一般由开发人员进行使用
**加载配置文件时候就会把在配置文件对象进行创建*
3.IOC操作Bean管理(基于xml方式)
1. 基于xml方式创建对象
(1)在spring配置文件中,使用bean标签,标签里面添加对应属性,就可以实现对象创建
(2)在bean标签有很多属性,常用的属性有:*id属性:唯一标识
*class属性:类全路径(包类路径)
(3)创建对象的时候,默认也是执行无参数构造方法完成对象的创建
2. 基于xml方式注入属性
(1) DI: 依赖注入,就是注入属性
3. 第一种注入方式: 使用set方法进行注入:
(1)创建类, 定义属性和对应的set方法
(2)在spring配置文件配置对象创建,配置属性注入
4. 第二种注入方式: 使用有参数构造进行注入