Spring ApplicationContext 容器

Application Context 是 spring 中较高级的容器。和 BeanFactory 类似,它可以加载配置文件中定义的 bean,将所有的 bean 集中在一起,当有请求的时候分配 bean。 另外,它增加了企业所需要的功能,比如,从属性文件从解析文本信息和将事件传递给所指定的监听器。这个容器在 org.springframework.context.ApplicationContext interface 接口中定义。

ApplicationContext 包含 BeanFactory 所有的功能,一般情况下,相对于 BeanFactoryApplicationContext 会被推荐使用。BeanFactory 仍然可以在轻量级应用中使用,比如移动设备或者基于 applet 的应用程序。

最常被使用的 ApplicationContext 接口实现:

  • FileSystemXmlApplicationContext:该容器从 XML 文件中加载已被定义的 bean。在这里,你需要提供给构造器 XML 文件的完整路径

  • ClassPathXmlApplicationContext:该容器从 XML 文件中加载已被定义的 bean。在这里,你不需要提供 XML 文件的完整路径,只需正确配置 CLASSPATH 环境变量即可,因为,容器会从 CLASSPATH 中搜索 bean 配置文件。

  • WebXmlApplicationContext:该容器会在一个 web 应用程序的范围内加载在 XML 文件中已被定义的 bean。

下面是文件 HelloWorld.java 的内容:

package com.tutorialspoint;
public class HelloWorld {private String message;public void setMessage(String message){this.message  = message;}public void getMessage(){System.out.println("Your Message : " + message);}
}

下面是文件 MainApp.java 的内容:

package com.tutorialspoint;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
public class MainApp {public static void main(String[] args) {ApplicationContext context = new FileSystemXmlApplicationContext("C:/Users/ZARA/workspace/HelloSpring/src/Beans.xml");HelloWorld obj = (HelloWorld) context.getBean("helloWorld");obj.getMessage();}
}

在主程序当中,我们需要注意以下两点:

  • 第一步生成工厂对象。加载完指定路径下 bean 配置文件后,利用框架提供的FileSystemXmlApplicationContext API 去生成工厂 bean。FileSystemXmlApplicationContext 负责生成和初始化所有的对象,比如,所有在 XML bean 配置文件中的 bean。

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

下面是配置文件 Beans.xml 中的内容:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.0.xsd"><bean id="helloWorld" class="com.tutorialspoint.HelloWorld"><property name="message" value="Hello World!"/></bean></beans>

如果你已经完成上面的内容,接下来,让我们运行这个应用程序。如果程序没有错误,你将从控制台看到以下信息:

Your Message : Hello World!

转载于:https://www.cnblogs.com/panxuejun/p/7212540.html

applicationcontext理解使用相关推荐

  1. Spring上下文(ApplicationContext)理解

    什么是Spring应用上下文呢??? 什么是应用上下文呢,应用上下文即是Spring容器的一种抽象化表述:而我们常见的ApplicationContext本质上说就是一个维护Bean定义以及对象之间协 ...

  2. Spring的ioc控制反转

    spring介绍 Spring的出现是为了取代EJB(Enterprise JavaBean)的臃肿.低效.脱离现实的缺点. Spring致力于J2EE应用的各层(表现层.业务层.持久层)的解决方案, ...

  3. android上下文关系,Android Context上下文的理解 Hua

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? Context概念 在安卓对象中,Context是经常使用的元素-但应该也是错误使用率最高的. 你在加载资源.启动一个新 ...

  4. 为什么大多数IOC容器使用ApplicationContext,而不用BeanFactory

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 1. 引言 Spring框架附带了两个IOC容器– Bea ...

  5. 深入理解Spring的ImportSelector接口

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:聂晨 cnblogs.com/niechen/p/92624 ...

  6. Activity采用栈式管理的理解

    本文来自:安卓航班网 Android针对Activity的管理使用的是栈,就是说某一个时刻只有一个Activity处在栈顶,当这个Activity被销毁后,下面的Activity才有可能浮到栈顶,或者 ...

  7. Hessian的使用以及理解(转)

    Hessian的使用以及理解 Hessian版本:3.1.5 将包括如下的内容: Hessian的基本使用 Hessian的原理 Hessian和Spring 的结合使用 扩展 简单说来,Hessia ...

  8. 彻底理解Spring AOP

    目录 前言 1. AOP概念 2. AOP的实现 3. Spring的IoC理解: 4. Sping知识整理 前言 AOP英文名为Aspect Oriented Programming,意为面向切面编 ...

  9. 深入理解Spring系列之三:BeanFactory解析

    转载 https://mp.weixin.qq.com/s?__biz=MzI0NjUxNTY5Nw==&mid=2247483824&idx=1&sn=9b7c2603093 ...

最新文章

  1. c语言常用的异常处理,C语言中的异常处理
  2. JZOJ__Day 1【NOIP普及模拟】MATRIX
  3. P3306-[SDOI2013]随机数生成器【BSGS】
  4. jzoj4282-[NOIP2015模拟10.29B组]平方数游戏【构造】
  5. php背景时间渐变,CSS3怎么实现背景颜色渐变?(图文+视频)
  6. python全局变量可以改变吗_在Python中避免我的全局变量,我有几个函数可以改变一个变量...
  7. 比特币——区块链的发展历程
  8. 搭建cacti 期间问题总结
  9. pdfbox、icepdf工具实现pdf转图片
  10. ipv6转ipv4 NAT64与DNS64基本原理概述
  11. 便捷式计算机无线功能按钮,便携式wlan热点是什么 如何设置【图解】
  12. HBuilder制作表格式的简历
  13. 电子书 “已取消到该网页的导航”或“导航已取消”解决方法
  14. 20230411笔记-MTK天玑开发者日(北京站)
  15. 高德地图api实现导航功能(使用经验)避坑关注
  16. vsCode安装使用教程和插件安装
  17. 操作系统(第四版)期末复习总结(上)
  18. NLP:Word Embedding词嵌入/word2vec词向量思想方法(一种主流的分布式表示)的简介、使用方法、案例应用之详细攻略
  19. 发布/上传Jar包到Maven中央仓库 - 史上最详细
  20. 中华英才网爬虫程序(3)-queue和threading模块的结合使用

热门文章

  1. Google Mesa概览
  2. flash在影片剪辑里面跳转场景
  3. BMP格式图像的显示
  4. goland 实用键
  5. 自己搭建的CISCO实验环境
  6. 多对多关联映射(双向)
  7. [转] 前端中的MVC
  8. 我的Python成长之路---第六天---Python基础(19)---2016年2月20日(晴)
  9. 好文章,被架构师秒杀之后
  10. 带预览图的js切换效果!