Spring系列 容器

创建容器

方式一:类路径加载配置文件:

ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");

方式二:文件路径加载配置文件(用绝对路径):

ApplicationContext ctx = new FileSystemXmlApplicationContext("D:\\applicationContext.xml");

加载多个配置文件,用,分隔即可:

ApplicationContext ctx = new ClassPathXmlApplicationContext("bean1.xml", "bean2.xml");

获取bean

方式一:使用bean名称获取

BookDao bookDao = (BookDao) ctx.getBean("bookDao");

方式二:使用bean名称获取并指定类型

BookDao bookDao = ctx.getBean("bookDao", BookDao.class);

方式三:使用bean类型获取(bean必须唯一)

BookDao bookDao = ctx.getBean(BookDao.class);

容器类层次结构

Spring系列 容器_第1张图片 BeanFactory

我们用到的ClassPathXmlApplicationContext和FileSystemXmlApplicationContext都来自BeanFactory。

直接用BeanFactory的话是懒加载,就是不会在解析xml的时候创建bean,而是要用到,我们写代码调用的的时候再调用构造方法创建。验证方法就是可以在构造方法加逻辑,看启动的时候有没有效果就行。

public class AppForBeanFactory {
    public static void main(String[] args) {
        Resource resources = new ClassPathResource("applicationContext.xml");
        BeanFactory bf = new XmlBeanFactory(resources);
//        BookDao bookDao = bf.getBean(BookDao.class);
//        bookDao.save();
    }
}

如果想实现懒加载效果可以加:lazy-init="true"

    lazy-init="true"/>

你可能感兴趣的:(spring系列,spring,java)