用到的技术 :xml解析、工厂类、反射机制
目的是降低耦合度
第一步 xml配置文件,配置创建的对象
<bean id=“dao” class=“com.atguigu.UserDao”></bean>
第二步 有service类和dao类,创建工厂类
class UserFactory{
public static UserDao getDao(){
String classValue = class属性值; // 1 xml解析
Class clazz = Class.forName(classValue ); //2 通过反射创建对象
return (UserDao) clazz.newInstance();
}
}
IOC接口
1、IOC思想基于IOC容器完成,IOC容器底层就是对象工厂
2、spring提供了两种IOC容器的两种实现方式:(两个工具类,加载spring配置文件)
(1)BeanFactory:IOC容器基本实现,是spring内部的使用接口,不提供开发人员使用;
*加载配置文件时候不会创建对象,在获取(使用)对象时候才创建对象
Beanfactory beanFac=new ClassPathXmlApplicationContext(“bean1.xml”);//此步骤不创建对象
User user = beanFac.getBean(“user”,User.class);
(2)ApplicationContext:BeanFactory接口的子接口,提供更加强大的功能,一般由开发人员使用
ApplicationContext context =new ClassPathXmlApplicationContext(“bean1.xml”);//此步骤创建对象
User user = context.getBean(“user”,User.class);
3、applicationContext接口有实现类:
FileSystemXmlApplicationContext:文件系统盘全路径
ClassPathXmlApplicationContext:类路径