spring_使用类获取对象

使用ApplicationContext/BeanFactory实现类创建ioc容器,并获取Bean对象


ApplicationContext:

在创建ioc容器时,创建对象采取的方式采用的是立即加载的方式,只要一读取配置文件,马上就会创建配置文件中配置的对象,Bean对象是单例的

ApplicationContext实现类:

ClassPathXmlApplicationContext:
加载类路径下的配置文件(Bean.xml在classes下)

1
2
3
4
//先获取spring的ioc容器对象
ApplicationContext ac = new ClassPathXmlApplicationContext("bean.xml");
//并且根据id获取对象 
UserDao dao = ac.getBean("userDao", UserDao.class);

FileSystemXmlApplicationContext:
加载磁盘任意路径下的配置文件 (Bean.xml在电脑的任意位置)

1
2
3
ApplicationContext ac = new FileSystemXmlApplicationContext("C:\Users\Desktop\bean.xml");
//并且根据id获取对象 
UserDao dao = ac.getBean("userDao", UserDao.class);

AnnotationConfigApplicationContext:
读取注解创建容器

BeanFactory:

在创建ioc容器时,创建对象采取的方式是采用延迟加载的方式,什么时候根据id获取对象了,什么时候才真正的创建对象,Bean对象是多例的

1
2
3
BeanFactory bf = new XmlBeanFactory(new ClassPathResource("bean.xml"));
UserService serivce =(UserService)bf.getBean("userService");
System.out.println(serivce);