Spring ClassPathXmlApplicationContext

介绍:

Spring提供了两种类型的容器:

  • BeanFactory它支持bean实例化和连接
  • ApplicationContext它扩展了BeanFactory ,因此提供了所有这些功能,就像BeanFactory一样。 此外,它提供BeanPostProcessor的自动注册,国际化以及更多功能

Spring容器负责实例化和管理Spring bean的生命周期。 ClassPathXmlApplicationContext是一个实现org.springframework.context.ApplicationContext接口的类。

在本快速教程中,我们将学习如何使用ClassPathXmlApplicationContext

最初设定:

假设我们有一个名为Person的Java类:

public class Person {private int id;private String name;...}

另外,让我们在applicationContext.xml中定义bean

<bean id="person" class="com.programmergirl.domain.Person"><property name="id" value="1"/><property name="name" value="Sam"/>
</bean>

使用

当使用ClassPathXmlApplicationContext时 ,容器从CLASSPATH中存在的给定xml文件中加载bean定义。

现在我们已经在应用程序上下文中定义了Person bean,让我们使用它在main()方法中加载bean:

public class MyApp {public static void main(String[] args) {ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");Person person = (Person) context.getBean("person");System.out.println(person.getId() + ":" + person.getName());}
}

请注意, 我们还可以使用几个XML配置文件来初始化Spring容器:

ApplicationContext context= new ClassPathXmlApplicationContext("appContext1.xml", "appContext2.xml");

在这种情况下,较新的bean定义将覆盖较早加载的文件中定义的定义。

在构造xml定义的应用程序上下文时,我们有时可以使用classpath *:前缀:

ApplicationContext context= new ClassPathXmlApplicationContext("classpath*:appContext.xml");

此前缀指定必须将具有给定名称的所有类路径资源合并在一起以形成最终的应用程序上下文定义。

注册一个

WebApplicationContext已经具有用于正确关闭IoC容器的代码。

但是, 对于任何非Web Spring应用程序,我们必须使用registerShutdownHook()方法在应用程序关闭期间正常关闭Spring IoC容器 。 我们可以为bean定义销毁前的方法,这些方法将被调用以释放所有持有的资源。

让我们在Person类中添加一个方法:

public class Person {...public void preDestroy() {System.out.println("Releasing all resources");}}

并更新我们的applicationContext.xml

<bean id="person" class="com.programmergirl.domain.Person" destroy-method="preDestroy"><property name="id" value="1"/><property name="name" value="Sam"/>
</bean>

使用注释时,我们可以在方法上使用@PreDestroy注释,而不是在xml中进行配置。

现在让我们将关闭钩子注册到我们的ApplicationContext

The above code on execution will print:

Conclusion:

In this article, we learned the basic usage of ClassPathXmlApplicationContext .

翻译自: https://www.javacodegeeks.com/2019/05/spring-classpathxmlapplicationcontext.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/339479.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql 1308_Mysql恢复数据报ERROR 1308 : LEAVE with no matching label_MySQL

赶紧看备份日志&#xff0c;日志如下&#xff1a;----------------------------------BEG:20151108 01:00:01FTP:20151108 01:00:05CLS:20151108 01:00:07OPT:20151108 01:00:08END:20151108 01:00:08----------------------------------日志并没有什么异常&#xff0c;既然说有…

真正的C与C++编程高手是什么?臭美的群体!如何编写高质量代码?

前 言软件质量是被大多数程序员挂在嘴上而不是放在心上的东西&#xff01;除了完全外行和真正的编程高手外&#xff0c;初读本书&#xff0c;你最先的感受将是惊慌&#xff1a;“哇&#xff01;我以前捏造的C/C程序怎么会有那么多的毛病&#xff1f;”别难过&#xff0c;作者只…

纪事本 乱码_纪事地图和Yahoo Cloud服务基准

纪事本 乱码总览 Yahoo Cloud Service Benchmark是一种相当广泛使用的基准测试工具&#xff0c;用于测试大量密钥&#xff08;例如1亿个&#xff09;和少量客户端&#xff08;即由一台计算机提供服务&#xff09;的密钥值存储。 在本文中&#xff0c;我将研究如何使用Chronicl…

windows10安装mysql 8.0_手把手教你在Windows 10安装MySQL 8.0(详细图文)

出品丨TeacherWhat题图&#xff1a;Oracle MySQL 8.0关键字&#xff1a;新版本、Install、安装、MySQL、数据库入门、Database正文约1000字&#xff0c;建议阅读时间2分钟目录结构&#xff1a;1. 官网下载安装包2. 点击下载的程序包安装3. 安装数据库软件4. 安装成功后&#xf…

Java:可选的可选实现

类java.util.Optional被实现为单个不可变的具体类&#xff0c;该类在内部处理两种情况。 一个有元素&#xff0c;一个没有元素。 让Optional作为一个接口并让两个不同的实现代替实现是一个更好的选择吗&#xff1f; 毕竟&#xff0c;这就是我们通常被教导要使用的一种面向对象的…

mysql降低数据库版本_三步10分钟搞定数据库版本的降迁 (将后台数据库SQL2008R2降为SQ...

三步10分钟搞定数据库版本的降迁 (将SQL2008R2降为SQL2005版本) 前思后想仍觉得实战数据库版本的降迁一文中的方式不仅老土而且低效&#xff0c;故有了下文三步搞定数据库从MSSQL2008R2 高版本降迁至SQL2005低版本。 整个过程如果思路清晰&#xff0c;数据量小&#xff0c;不过…

2017菜鸡C与C++工程师总结,撸码撸码,垃圾专科生撸码人生

前言年底了&#xff0c;对工作做一个总结。又要感叹那句话啊&#xff0c;时光流水&#xff0c;仿佛昨天才刚毕业&#xff0c;到今天不知不觉已经正式工作半年了。文章以po主自己的心理想法和所见所闻入手来写&#xff0c;垃圾专科生&#xff0c;文笔不好勿怪。开始正文吧。关于…

primefaces_PrimeFaces 5.0 DataTable列切换器

primefaces我有机会与PrimeFaces 5.0 DataTable一起工作&#xff0c;并且增强功能很棒。 今天&#xff0c;我只想展示其中的一项新功能……DataTable列切换器。 通过此功能&#xff0c;可以通过复选框列表选择显示哪些列。 要使用列切换器&#xff0c;只需添加一个commandButt…

opencv 编译 python导入_openCV3 Python编译指南

这里主要对openCV官网的《Installation in Linux》文档进行了翻译和解释原文见&#xff1a;https://docs.opencv.org/3.4.1/doc/tutorials/introduction/linux_install/linux_install.html#linux-installationRequired Packages(需求包)GCC 4.4.x or laterCMake 2.6 or higherG…

Docker化Spring Boot应用程序

你好朋友&#xff0c; 在本教程中&#xff0c;我们将看到如何对Spring Boot应用程序进行Docker化。通过dockerizing意味着我们将以Docker容器的形式运行应用程序。 以下是涉及的步骤&#xff1a; 1.创建一个Spring Boot应用程序 2.在您的机器上安装Docker 3.在您的项目中创…

telephone 为空 唯一索引_PostgreSQL的空串、空值对唯一性约束的影响

一、现象及原因今天在PostgreSQL又遇到一个现象&#xff0c;应用代码报错&#xff1a;“ERROR: duplicate key value violates unique constraint ...”。最后查明&#xff0c;这是由于PostgreSQL把空串()、空值(NULL)当作不同的值&#xff0c;从而影响了那些没有申明为NOT NUL…

抱歉咯!今天偷个懒!!

今天偷个懒向大家推荐一个新建的C/C学习交流群。应为新建群人数不是很多&#xff0c;正在学习C/C或者正在寻求进阶的小伙伴都可以加下。作为群主会不时在群内分享学习资料的。

openshift_在WildFly和OpenShift上的WebSocket聊天

openshift聊天是解释WebSocket的最典型示例之一。 它是一个相当常用的界面&#xff0c;可以很容易地解释WebSocket的基本概念。 当然&#xff0c;Java EE 7 WebSocket也有一个&#xff0c; 在这里可用 &#xff01; 您可以使用以下步骤在WildFly上轻松运行它&#xff1a; curl…

linux 下脚本安装 mysql_linux(centos7)下编译安装mysql(数据库)一键安装详解+脚本文件...

一、下载源文件官网下载地址&#xff1a; https://downloads.mysql.com/archives/community/二、安装前准备(1)、开始之前先把虚拟机内存调大&#xff0c;避免安装时间过长和卡慢此处我调的内存为8个G(我的Windows内存为12G),如果你的电脑没有这么大运行内存可适度调小&#xf…

mysql数据库改成支持中文_修改Mysql编码支持中文

MySQL的默认编码是Latin1&#xff0c;不支持中文&#xff0c;要支持中午需要把数据库的默认编码修改为gbk或者utf8。1、需要以root用户身份登陆才可以查看数据库编码方式(以root用户身份登陆的命令为&#xff1a;>mysql -u root –p,之后两次输入root用户的密码)&#xff0c…

为什么学习C语言这么久,看的懂代码,做不出题,写不出来项目?

前言我看得懂别人的程序&#xff0c;可是我自己却写不出来&#xff0c;我应该怎么办啊&#xff1f;你了解这些嘛&#xff1f;你只是能从别人书写的代码知道每一步都做些什么吧&#xff1f;你明白别人的解题思路吗&#xff1f;你知道别人为什么要用那样的算法吗&#xff1f;如果…

如何在AWS中启动EC2实例

你好朋友&#xff0c; 在本教程中&#xff0c;我们将看到如何立即在AWS中旋转EC2实例。 您应该可以访问AWS控制台。如果您还没有AWS账户&#xff0c;则可以单击此处并在AWS上创建免费套餐。 如何在AWS中启动EC2实例 步骤1 &#xff1a; 使用您的凭证登录到您的AWS账户。 第…

git提交过滤package.json_eclipse配置git环境以及使用git提交本地仓和远程仓

一、Eclipse上安装GIT插件EGitEGit插件地址&#xff1a;http://download.eclipse.org/egit/updatesOK&#xff0c;随后连续下一步默认安装就可以&#xff0c;安装后进行重启Eclipse二、在Eclipse中配置EGitPreferences > Team > Git > Configuration注意这里的user.na…

dropbox_如何在Java中将图像上传到DropBox

dropbox本教程介绍了如何将图像上传到放置框并获取上传图像的公共URL。 首先&#xff0c;我们必须使用应用程序控制台创建一个DropBox API应用程序 。 创建应用程序后&#xff0c;您可以在应用程序属性中获取应用程序密钥和秘密密钥。 现在在pom文件中添加以下依赖项。 <…

C语言求一元二次方程的根,这题很简单嘛?看看这种想法很惊奇!

数学基础:一元二次方程只含有一个未知数&#xff08;一元&#xff09;&#xff0c;并且未知数项的最高次数是2&#xff08;二次&#xff09;的整式方程叫做一元二次方程。标准形式为&#xff1a;axbxc0&#xff08;a≠0&#xff09;。求解公式&#xff1a;求根公式法用求根公式…