ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
ApplicationContext ctx = new FileSystemXmlApplicationContext("E:\\Code\\Java\\SpringStudy\\project1\\src\\main\\resources\\applicationContext.xml");
BookDao bookDao = (BookDao) ctx.getBean("bookDao");
BookDao bookDao = ctx.getBean("bookDao", BookDao.class);
BookDao bookDao = ctx.getBean(BookDao.class);
最古早的Bean创建
Resource resource = new ClassPathResource("applicationContext.xml");
BeanFactory bf = new XmlBeanFactory(resource);
BookDao bookDao = bf.getBean(BookDao.class);
bookDao.save();
BeanFactory与我们现在ApplicationContext的区别在于:
BeanFactory是延迟加载bean,ApplicationContext是立即加载bean
即前者在没有getBean的时候是不会提前执行类的构造方法的,而Application就算没有getBean也会执行构造方法
如果想在ApplicationContext上实现延迟加载bean,只需要加参数:lazy-init="true"
<bean id="bookDao" class="com.example.project1.dao.impl.BookDaoImpl" lazy-init="true"/>