IOC目的:为了耦合度降低
IOC原理:xml解析,工厂模式,反射
工厂模式:
class UserService{ class UserName{
fangfa1(){……} fangfa2(){……}
} }
实现在fangfa1里调用fangfa2
普通模式,在fangfa1里先new一个UserName类的对象a出来UserName a = new UserName;,再对象调用fangfa2 a.fangfa2();
工厂模式,先创建一个类,class UserFactory{……},在类中定义一个方法去创建对象public static UserName fangfa3(){return new UserName();},然后去fangfa1中new对象a出来UserName a = UserFactory.fangfa3();,再对象调用fangfa2 a.fangfa2();
IOC过程
第一步,xml配置文件,配置创建的对象<bean id="身份标识" class="对象路径"></bean>
第二步,创建工厂类,利用反射把对象创建
IOC接口
1.BeanFactory:Spring内部接口,加载配置文件是不会创建对象,使用时再创建
2.ApplicationContext:BeanFactory接口的子接口,提供更多功能,加载配置文件时同时创建对象
3.ApplicationContext接口下的两个常用实现类FileSystemXmlApplicationContext和ClassPathXmlApplicationContext
IOC操作Bean管理
1.Spring创建对象,xml方式创建和注解方式创建
xml方式,<bean id="身份标识" class="对象路径"></bean>,xml创建对象时默认执行无参构造
2.Spring注入属性,set方法注入和有参构造注入
set方法,在<bean>便签内用<property>注入,
<property name="属性名称" value="属性的值"></property>
有参构造,在<bean>便签内用<constructor-arg>注入,
<constructor-arg name="属性名称" value="属性的值"></constructor>