[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");



目录
相关文章
|
24天前
|
XML Java 数据库连接
spring boot 参数的过滤注解与实战
在Spring Boot应用中,对于入参的过滤,通常会涉及到对Web层的数据验证和处理。Spring Boot借助Spring框架提供了强大的验证框架支持,主要基于JSR-303/JSR-380(Bean Validation API)规范,以及Spring自身的@Valid或@Validated注解来实现请求参数的验证。以下是一些常见的使用案例来展示如何对参数进行过滤和验证。
24 1
|
1月前
|
监控 Java 数据处理
【Spring云原生】Spring Batch:海量数据高并发任务处理!数据处理纵享新丝滑!事务管理机制+并行处理+实例应用讲解
【Spring云原生】Spring Batch:海量数据高并发任务处理!数据处理纵享新丝滑!事务管理机制+并行处理+实例应用讲解
|
17天前
|
安全 Java 数据安全/隐私保护
【深入浅出Spring原理及实战】「EL表达式开发系列」深入解析SpringEL表达式理论详解与实际应用
【深入浅出Spring原理及实战】「EL表达式开发系列」深入解析SpringEL表达式理论详解与实际应用
40 1
|
17天前
|
存储 XML 缓存
【深入浅出Spring原理及实战】「缓存Cache开发系列」带你深入分析Spring所提供的缓存Cache功能的开发实战指南(一)
【深入浅出Spring原理及实战】「缓存Cache开发系列」带你深入分析Spring所提供的缓存Cache功能的开发实战指南
39 0
|
3天前
|
Java 数据库 Spring
切面编程的艺术:Spring动态代理解析与实战
切面编程的艺术:Spring动态代理解析与实战
19 0
切面编程的艺术:Spring动态代理解析与实战
|
17天前
|
Prometheus 监控 Cloud Native
Spring Boot 应用可视化监控
Spring Boot 应用可视化监控
14 0
|
24天前
|
存储 缓存 安全
Spring Boot从入门到实战
本课程从SpringBoot的最基础的安装、配置开始到SpringBoot的日志管理、Web业务开发、数据存储、数据缓存,安全控制及相关企业级应用,全程案例贯穿,案例每一步的都会讲解实现思路,全程手敲代码实现。让你不仅能够掌SpringBoot的应用,还能了解背后的原理,学习完本课程后,能够让你动手独立完成一个中小型的SpringBoot Web应用开发。
17 1
Spring Boot从入门到实战
|
1月前
|
Cloud Native Java 开发者
Spring Boot 4.0:构建云原生Java应用的前沿工具
Spring Boot 4.0:构建云原生Java应用的前沿工具
|
1月前
|
XML Java 数据库
【二十四】springboot整合spring事务详解以及实战
【二十四】springboot整合spring事务详解以及实战
90 0
|
1月前
|
安全 Java 数据安全/隐私保护
【Java】保护你的应用:深入探讨Spring Security的应用与最佳实践
【Java】保护你的应用:深入探讨Spring Security的应用与最佳实践
59 0