ApplicationContext和BeanFactory都可以获得Spring上下文对象,就像下面的代码那样:
import com.bite.demo.UserService;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class App {
public static void main(String args[]){
// 1.先得到spring 的上下文对象
ApplicationContext context=new ClassPathXmlApplicationContext("spring-config.xml");
// 2.得到bean
UserService userService=(UserService)context.getBean("user");
userService.sayHi();
}
}
package com.bite.demo;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;
public class App2 {
public static void main(String args[]){
// 1.得到spring的上下文对象
BeanFactory beanFactory=new XmlBeanFactory( new ClassPathResource("spring-config.xml"));
UserService userService=(UserService)beanFactory.getBean("user");
userService.sayHi();
}
}
那么他们有什么相同点和区别呢?
相同点:都是容器管理对象,都可以获取Bean对象。
区别: