使用应用上下文
Spring自带了多种类型的应用上下文。下面罗列的几个是最可能遇到的
- AnnotationfigApplicationContext:从一个或多个基于Java的配置类中加载Spring应用上下文。
- AnnotationConfigWebApplicationContext:从一个或多个基于java的配置类中加载SpringWeb应用上下文
- ClassPathXmlApplicationContext:从类路径下的一个或多个XML配置文件中加载上下文定义,把应用上下文的定义文件作为类资源
- FileSystemXmlapplicationcontext:从文件系统下的一个或多个XML配置文件中加载上下文定义
- XMLWebApplicationContext:从Web应用下的一个或多个xml配置文件中加载上下文定义。
无论是文件系统中装载应用上下文还是从类路径下装载应用上下文,装载到bean工厂的过程都是相似的。例如,如下代码展示了如何加载一个FileSystemXmlApplicationContext:
ApplicationContext context = new
FileSystemXmlApplicationContext("c:/knight.xml");
类似的,你可以使用ClassPathXMLApplicationContext从应用的类路径下加载应用上下文
ApplicationContext context = new
ClassPathXmlApplicationContext("knight.xml");
}
使用FileSystemXMLApplicationContext和使用ClassPathXmlApplicationContext的区别在于:FileSystemXMLApplicationContext在指定的文件系统路径下查找knight.xml文件,而ClassPathXmlApplicationContext是在所有的类路径(包含jar文件)下查找Knight.xml文件。
如果你想从JAVA配置中加载应用上下文,那么可以使用AnnotationConfigApplicationContext:
ApplicationContext context = new
AnnotationConfigApplicationContext(
com.springinaction.knights.config.KnightConfig.class
);
在这里没有指定架子啊Spring应永上下文所需的XML文件,AnnotationConfigApplicationContext通过一个配置类加载bean。
应用上下文准备就绪之后,我们就可以调用上下文的getBean()方法从Spring容器中获取bean