博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring的IoC容器-Spring ApplicationContext容器
阅读量:7297 次
发布时间:2019-06-30

本文共 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配置文件。

  • WebXmlApplicationContext:该容器会在一个web应用程序的范围内加载在XML文件中已被定义的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。

  • 第二步利用第一步生成的上下文中的getBean()方法得到所需要的bean。 这个方法通过配置文件中的bean ID来返回一个真正的对象。一旦得到这个对象,就可以利用这个对象来调用任何方法。

 

测试工程:

 

以上参考:

==>如有问题,请联系我:easonjim#163.com,或者下方发表评论。<==

转载地址:http://jvmjm.baihongyu.com/

你可能感兴趣的文章
awk用法小结
查看>>
你有没有忽略TextField的leftView这个属性
查看>>
A和B两个数组,删除B中与A重复的元素
查看>>
方格广搜
查看>>
match
查看>>
今日工作情况2
查看>>
一个学习简单网络技术的网站
查看>>
使用JQuery的get或post方法时出现页面没法手动刷新?
查看>>
MongoDB进阶
查看>>
python3csv与xlsx文件操作模块(csv、xlsxwriter)
查看>>
开启线程方式
查看>>
xdebug
查看>>
Css之 间距初始化
查看>>
lsnrctl启动报错,Linux Error: 29: Illegal seek
查看>>
IDEA github
查看>>
linux 驱动学习笔记05--文件系统与设备文件系统
查看>>
unresolved external symbol __forceAtlDllManifest错误的解决
查看>>
Linux的.run文件简单制作
查看>>
ubuntu解压命令(转)
查看>>
C#获取获取北京时间多种方法
查看>>