1、BeanFactory接口

BeanFactory接口为Spring的原始接口,功能较为单一,其特点是,每次在获得对象的时候才会创建对象,而ApplicationContext 是事先创建对象,需要的时候直接从容器中去即可。BeanFactory是一个工厂,用于生成任意bean。

 

2、ApplicationContext 类

(1)介绍:

每次容器创建的时候就会创建容器中所配置的对象,并且功能有很大的增强。但是,ApplicationContext较为浪费资源,因为它将所有的对象一次全部创建出来,而BeanFactory是在调用和对象的时候才会去创建对象。

(2)ApplicationContext 获取配置文件的方法:

从类路径下获取配置文件:

 ApplicationContext applicationContext=new
                ClassPathXmlApplicationContext("applicationContext.xml");//创建容器对象

从硬件绝对路径下获取配置文件(指定盘符下的xml):

FileSystemXmlApplicationContext("路径")

 

3、ApplicationContext 类与BeanFactory接口的对比

(1)ApplicationContext 类:

StudentServiceImpl:
public class StudentServiceImpl {
    private StudentDao studentDao;

    public StudentServiceImpl() {
        System.out.println("service的实现类被创建了!!");
    }

    public StudentDao getStudentDao() {
        return studentDao;
    }
    public void setStudentDao(StudentDao studentDao) {
        this.studentDao = studentDao;
    }
    public void addStudent(){
        System.out.println("StudentService的实现类的Add方法!!");
        studentDao.addStudent();
    }
}

测试类:

  public static void main(String[] args) {
        ApplicationContext applicationContext=new
                ClassPathXmlApplicationContext("applicationContext.xml");//创建容器对象
        StudentServiceImpl studentService=(StudentServiceImpl) applicationContext.getBean("studentService");
        studentService.addStudent();
    }

测试结果:

service的实现类被创建了!!
StudentService的实现类的Add方法!!
StudentDao的实现类的Add方法!!

 

(2)BeanFactory接口

   public static void main(String[] args) {
        BeanFactory beanFactory=new XmlBeanFactory(new ClassPathResource("applicationContext.xml"));
        StudentServiceImpl studentService=(StudentServiceImpl) beanFactory.getBean("studentService");
        studentService.addStudent();
    }
  • 在调用getBean的时候才会去创建对象
  • Bean 工厂是工厂模式的一个实现,提供了控制反转功能,用来把应用的配置和依赖从应用代码中分离。最常用的BeanFactory 实现是XmlBeanFactory (org.springframework.beans.factory.xml.XmlBeanFactory类)类。它根据 XML 文件中的定义加载beans。该容器从XML 文件读取配置元数据并用它去创建一个完全配置的系统或应用。

 

每个人都会有一段异常艰难的时光 。 生活的压力 , 工作的失意 , 学业的压力。 爱的惶惶不可终日。 挺过来的 ,人生就会豁然开朗。 挺不过来的 ,时间也会教你 ,怎么与它们握手言和 ,所以不必害怕的。 ——杨绛