[Spring实战系列](5)Spring应用上下文

简介: 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/SunnyYoona/article/details/50618337 下面是Spring-Hello-world项目的运行代码:package com.
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/SunnyYoona/article/details/50618337

下面是Spring-Hello-world项目的运行代码:
 
   
package com.sjf.bean;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
* 测试类
* @author sjf0115
*
*/
public class Test {
private static ApplicationContext context;
private static HelloWorld helloWorld;
public static void main(String[] args) {
// 1. 创建Spring IOC容器
context = new ClassPathXmlApplicationContext("applicationContext.xml");
// 2. 从IOC容器中获取Bean实例
helloWorld = (HelloWorld)context.getBean("helloworld");
// 3.调用sayHello方法
helloWorld.sayHello();
}
}

从代码中可以看出使用Spring框架的第一步就是使用Spring应用上下文创建Spring IOC容器:
 
   
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
因此下面我们就说明一下Spring应用 上下文的事情。

Spring 自带了几种类型的应用上下文:

Spring上下文 描述
ClassPathXmlApplicationContext 类路径下的XML 配置文件中加载上下文定义,把应用上下文定义文件当作类资源。
FileSystemXmlapplicationcontext 读取文件系统下的XML 配置文件并加载上下文定义。
XmlWebApplicationContext 读取Web 应用下的XML 配置文件并装载上下文定义。

我们会在以后慢慢说明基于Spring 的Web 应用,届时我们将对XmlWebApplicationContext进行详细解释。现在我们先简单地使用FileSystemXmlApplicationContext从文件系统中加载应用上下文或者使用ClassPathXmlApplicationContext从类路径中加载应用上下文。

无论是从文件系统中装载应用上下文还是从类路径下装载应用上下文,将Bean加载到Bean 工厂的过程都是相似的。例如,如下代码展示了如何加载一个File-SystemXmlApplicationContext:
 
   
ApplicationContext context = new FileSystemXmlApplicationContext("d:/applicationContext.xml");

类似地,你可以使用ClassPathXmlApplicationContext 从应用的类路径下加载应用上下文:
 
   
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");

使用FileSystemXmlApplicationContext 和使用ClassPathXmlApplicationContext的 区别在于
  • FileSystemXmlApplicationContext 在指定的文件系统路径下查找applicationContext.xml 文件;
  • ClassPathXmlApplicationContext 是在所有的类路径(包含JAR 文件)下查找applicationContext.xml.xml 文件。


下图表示了我以前写applicationContext.xml存放位置的两种方式:




之前还表示对applicationContext.xml存放位置表示疑惑,难道只凭一个名字就能找到它?现在终于明白了, ClassPathXmlApplicationContext 是在所有的类路径(包含JAR 文件)下查找 applicationContext.xml .xml 文件,所以以上两种方式Spring IOC容器都能找到。

通过现有的应用上下文引用,你可以调用应用上下文的getBean() 方法从Spring 容器中获取Bean。
 
   
// 2. 从IOC容器中获取Bean实例
helloWorld = (HelloWorld)context.getBean("helloworld");



目录
相关文章
|
2月前
|
人工智能 前端开发 Java
Spring AI Alibaba + 通义千问,开发AI应用如此简单!!!
本文介绍了如何使用Spring AI Alibaba开发一个简单的AI对话应用。通过引入`spring-ai-alibaba-starter`依赖和配置API密钥,结合Spring Boot项目,只需几行代码即可实现与AI模型的交互。具体步骤包括创建Spring Boot项目、编写Controller处理对话请求以及前端页面展示对话内容。此外,文章还介绍了如何通过添加对话记忆功能,使AI能够理解上下文并进行连贯对话。最后,总结了Spring AI为Java开发者带来的便利,简化了AI应用的开发流程。
964 0
|
3月前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用。
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用。首先,创建并配置 Spring Boot 项目,实现后端 API;然后,使用 Ant Design Pro Vue 创建前端项目,配置动态路由和菜单。通过具体案例,展示了如何快速搭建高效、易维护的项目框架。
172 62
|
2月前
|
XML Java 数据格式
Spring Core核心类库的功能与应用实践分析
【12月更文挑战第1天】大家好,今天我们来聊聊Spring Core这个强大的核心类库。Spring Core作为Spring框架的基础,提供了控制反转(IOC)和依赖注入(DI)等核心功能,以及企业级功能,如JNDI和定时任务等。通过本文,我们将从概述、功能点、背景、业务点、底层原理等多个方面深入剖析Spring Core,并通过多个Java示例展示其应用实践,同时指出对应实践的优缺点。
75 14
|
3月前
|
人工智能 前端开发 Java
基于开源框架Spring AI Alibaba快速构建Java应用
本文旨在帮助开发者快速掌握并应用 Spring AI Alibaba,提升基于 Java 的大模型应用开发效率和安全性。
418 12
基于开源框架Spring AI Alibaba快速构建Java应用
|
2月前
|
XML 前端开发 安全
Spring MVC:深入理解与应用实践
Spring MVC是Spring框架提供的一个用于构建Web应用程序的Model-View-Controller(MVC)实现。它通过分离业务逻辑、数据、显示来组织代码,使得Web应用程序的开发变得更加简洁和高效。本文将从概述、功能点、背景、业务点、底层原理等多个方面深入剖析Spring MVC,并通过多个Java示例展示其应用实践,同时指出对应实践的优缺点。
131 2
|
3月前
|
JSON 安全 算法
Spring Boot 应用如何实现 JWT 认证?
Spring Boot 应用如何实现 JWT 认证?
110 8
|
3月前
|
消息中间件 Java Kafka
Spring Boot 与 Apache Kafka 集成详解:构建高效消息驱动应用
Spring Boot 与 Apache Kafka 集成详解:构建高效消息驱动应用
87 1
|
3月前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个前后端分离的应用框架,实现动态路由和菜单功能
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个前后端分离的应用框架,实现动态路由和菜单功能。首先,确保开发环境已安装必要的工具,然后创建并配置 Spring Boot 项目,包括添加依赖和配置 Spring Security。接着,创建后端 API 和前端项目,配置动态路由和菜单。最后,运行项目并分享实践心得,帮助开发者提高开发效率和应用的可维护性。
233 2
|
3月前
|
Java Docker 微服务
利用Docker容器化部署Spring Boot应用
利用Docker容器化部署Spring Boot应用
74 0
|
4月前
|
存储 Java 数据管理
强大!用 @Audited 注解增强 Spring Boot 应用,打造健壮的数据审计功能
本文深入介绍了如何在Spring Boot应用中使用`@Audited`注解和`spring-data-envers`实现数据审计功能,涵盖从添加依赖、配置实体类到查询审计数据的具体步骤,助力开发人员构建更加透明、合规的应用系统。