本文共 2843 字,大约阅读时间需要 9 分钟。
Application Context是spring中较高级的容器。和BeanFactory类似,它可以加载配置文件中定义的bean,将所有的bean集中在一起,当有请求的时候分配bean。 另外,它增加了企业所需要的功能,比如,从属性文件从解析文本信息和将事件传递给所指定的监听器。这个容器在org.springframework.context.ApplicationContext interface接口中定义。
ApplicationContext包含BeanFactory所有的功能,一般情况下,相对于BeanFactory,ApplicationContext会被推荐使用。BeanFactory仍然可以在轻量级应用中使用,比如移动设备或者基于applet的应用程序。
最常被使用的ApplicationContext接口实现:
FileSystemXmlApplicationContext:该容器从XML文件中加载已被定义的bean。在这里,你需要提供给构造器XML文件的完整路径
ClassPathXmlApplicationContext:(最常用)该容器从XML文件中加载已被定义的bean。在这里,你不需要提供XML文件的完整路径,只需正确配置CLASSPATH环境变量即可,因为,容器会从CLASSPATH中搜索bean配置文件。
例子实践:
pom.xml:
4.0.0 com.jsoft.testspring testapplicationcontext 0.0.1-SNAPSHOT jar testapplicationcontext http://maven.apache.org UTF-8 junit junit 3.8.1 test org.springframework spring-core 4.1.4.RELEASE org.springframework spring-context 4.1.4.RELEASE
HelloWorld.java:
package com.jsoft.testspring.testapplicationcontext;public class HelloWorld { private String messageString; public void setMessage(String message){ this.messageString = message; } public String getMessage(){ return this.messageString; }}
beans.xml:
App.java:
package com.jsoft.testspring.testapplicationcontext;import org.springframework.context.ApplicationContext;import org.springframework.context.support.FileSystemXmlApplicationContext;/** * Hello world! * */public class App { public static void main( String[] args ) { ApplicationContext applicationContext = new FileSystemXmlApplicationContext("D:\\开发工程\\GitHub\\5_java_example\\springtest\\test3\\testapplicationcontext\\src\\main\\resources\\beans.xml"); HelloWorld helloWorld = (HelloWorld)applicationContext.getBean("helloWorld"); System.out.println(helloWorld.getMessage()); }}
运行结果:
运行原理:
第一步生成工厂对象。加载完指定路径下bean配置文件后,利用框架提供的FileSystemXmlApplicationContext API去生成工厂bean。FileSystemXmlApplicationContext负责生成和初始化所有的对象,比如,所有在XML bean配置文件中的bean。
测试工程:
以上参考:
==>如有问题,请联系我:easonjim#163.com,或者下方发表评论。<==转载地址:http://jvmjm.baihongyu.com/