Spring容器顶层接口:获取Bean对象;管理类和类之间的关系(依赖关系)BeanFactory由org.springframework.beans.factory.BeanFactory接口定义 BeanFactory是工厂模式(Factory pattern)的实现,是IOC容器的核心接口,它的职责包括:实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。
BeanFactory接口包含以下基本方法:
containsBean(String beanName) 判断工厂中是否包含给定名称的bean定义,若有则返回true。
Object getBean(String str) 返回给定名称注册的bean实例。根据bean的配置情况,如果是singleton模式将返回一个共享实例,否则将返回一个新建的实例,如果没有找到指定bean,该方法可能会抛出异常。
Object getBean(String, Class) 返回以给定名称注册的bean实例,并转换为给定class类型
Class getType(String name) 返回给定名称的bean的Class,如果没有找到指定的bean实例,则排除NoSuchBeanDefinitionException异常
boolean isSingleton(String) 判断给定名称的bean定义是否为单例模式
String[] getAliases(String name) 返回给定bean名称的所有别名
ApplicationContext接口 :
是基于BeanFactory之上的,提供了应用程序框架服务,扩展的新功能如下:提供国际化的支持资源访问,如URL和文件 事件传递载入多个配置文件等 实现类常见有三个ClassPathXmlApplicationContext:-classpath路径加载xml文件的FileSystemXmlApplicationContext:基于项目根路径进行加载xml文件的AnnotationConfigApplicationContext:基于注解的配置。基于类书写的配置。
public class TestBeanFactoryAndApplication {
// public static void main(String[] args) {
// //读取配置文件
// ClassPathResource resource = new ClassPathResource("application.xml");
// //解析配置文件
// XmlBeanFactory factory = new XmlBeanFactory(resource);
// Object userDao = factory.getBean("userDao"); //拿到哪个bean时才会调用构造函数创建该bean.
//
// //当使用到bean对象时,spring才会帮你创建.
// Object people = factory.getBean("people");
// }
public static void main(String[] args)