首页 > 其他分享 >Spring 学习笔记(2)—— ApplicationContext 及 WebApplicationContext 的初始化

Spring 学习笔记(2)—— ApplicationContext 及 WebApplicationContext 的初始化

时间:2023-06-06 22:02:04浏览次数:34  
标签:WebApplicationContext ApplicationContext Web 配置文件 容器 Spring xml


前言

Spring 通过一个配置文件描述 Bean 和 Bean 之间的依赖关系,利用 Java 语言的反射功能实例化 Bean,并建立 Bean 之间的依赖关系。

BeanFactory(com.springframework.beans.factory.BeanFactory)是 Spring 框架最核心的接口,提供了高级 IoC 的配置机制。BeanFactory 使管理不同类型的 Java 对象成为可能,ApplicationContext(com.springframework.context.ApplicationContext)建立在 BeanFactory 之上。

一般称 BeanFactoryIoC 容器,而称 ApplicationContext应用上下文。但有时为了行文方便,也称ApplicationContextSpring 容器


ApplicationContext 介绍

ApplicationContext 的主要实现类是 ClassPathXmlApplicationContextFileSystemXmlApplicationContext,前者默认从类路径加载配置文件,后者默认从文件系统中加载配置文件。

ApplicationContext 的初始化 (基于 XML 文件的配置方式)

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

还可以指定一组配置文件, Spring 会自动将多个配置文件在内存中“整合”成一个配置文件

ApplicationContext context = new ClassPathXmlApplicationContext(
new String[] {"classpath:applicationContext.xml", "classpath:bean.xml" });

除了可以采用 基于 XML 配置文件的方式启动 Spring 容器

还可以采用 以带有 @Configuration 的配置类启动容器

以及 使用 Groovy-DSL 来进行 Bean 定义配置


WebApplicationContext 介绍

WebApplicationContext 是专门为 Web 应用准备的,它允许从相对于 Web 根目录的路径中装载配置文件完成初始化工作。

WebApplicationContext 的初始化需要 ServletContext 实例,必须在拥有 Web 容器的前提下才能完成启动工作。可以在 web.xml 文件中配置自启动的 Servlet 或是定义 Web 容器监听器,就可以完成启动 Spring WebApplicationContext 的工作。

通过 Web 容器监听器引导

<!-- 加载spring容器 -->
<!-- 指定配置文件 -->
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath: applicationContext-*.xml</param-value>
  </context-param>

<!-- 声明 Web 容器监听器 -->
  <listener>
    <listener-class>
        org.springframework.web.context.ContextLoaderListener
    </listener-class>
  </listener>

ContextLoaderListener 通过 Web 容器上下文参数 contextConfigLocation 获取 Spring 配置文件的位置。


标签:WebApplicationContext,ApplicationContext,Web,配置文件,容器,Spring,xml
From: https://blog.51cto.com/u_16152603/6428539

相关文章

  • Spring 学习笔记(1)—— 通过一个小例子体会 IoC 的概念
    《墨攻》中的一个场面,刘德华所饰演的墨者——革离,到达梁国都成下时候,城上的梁国守军问道:“来者何人?”,刘德华回答:“墨者革离!”使用Java语言为这个场景“城门叩问”的场景编写剧本。革离是《墨攻》剧本中一个角色,我们用一个接口(interface)来表示这个角色GeLi.javapackagecom.smart.io......
  • Spring 学习笔记(12)—— AOP 基础
    AOP到底是什么AOP术语创建增强类......
  • SpringMVC
    SpringMVCModel:模型业务逻辑层+数据访问层View:视图jsphtmlController:控制器servlet介绍SpringMVC是一种基于Java实现MVC模型的轻量级Web框架,SpringMVC已经成为目前最主流的MVC框架之一,从Spring3.0的发布,就已全面超越Struts2,成为最优秀的MVC框架。它通过一......
  • Spring和Mybatis
    Mybatis和springMyBatis第一个程序搭建数据库CREATEDATABASE`mybatis`;USE`mybatis`;DROPTABLEIFEXISTS`user`;CREATETABLE`user`(`id`int(20)NOTNULL,`name`varchar(30)DEFAULTNULL,`pwd`varchar(30)DEFAULTNULL,PRIMARYKEY(`id`))......
  • Spring框架中事务控制的运行原理
    PhotobyTomaszFilipekfromPexels:https://www.pexels.com/photo/nature-photography-of-flower-field-1646178/SpringTransaction基本介绍我们在日常开发中经常使用Spring框架来实现事务管理。事务管理是指在执行一系列操作时,保证这些操作要么全部成功,要么全部失败,不......
  • JPA、Hebernate、MyBatis、Spring Data JPA 的区别
    JPA是持久化的标准,是接口协议Hebernate和MyBatis是持久化技术的具体实现SpringDataJPA是在Hibernate的基础上更上层的封装实现1、Hibernate与Jpa的关系?https://www.zhihu.com/question/30691648......
  • idea 创建 spring boot 项目
    1.创建 2.创建信息 next 点finish 3.创建好后,项目长这样: 4.配置maven。如果侧边没有maven选项卡,参考这篇https://www.cnblogs.com/cynthia-wuqian/p/17460845.html   5.启动项目 ......
  • 开始学习spring 最初配置 步骤
    一:新建项目idea-----newproject----在Buildsystem在选择Maven---然后选create创建二:在file中选择ProjectStructure ---- 然后选择Modules----在Depedencies(依赖)中选择 加号 然后在本地电脑上导入所需要的jar包,记得每个jar包之前要选择打上对勾, 然后点击A......
  • spring cloud 项目
    ###项目需求客户端:针对普通用户,用户登录、用户退出、菜品订购、我的订单。后台管理系统:针对管理员,管理员登录、管理员退出、添加菜品、查询菜品、修改菜品、删除菜品、订单处理、添加用户、查询用户、删除用户。![1](/Users/southwind/我的文件/商务合作/ai/项目实战/笔记/images/......
  • 《springboot冲刺棒》application.yml篇
    $是什么意思application.yml中的jdbc:mysql://${MYSQL-HOST:127.0.0.1}的$是什么意思application.yml中的${MYSQL-HOST:127.0.0.1}实际上是SpringBoot应用程序的属性占位符,具有允许在特定位置引用应用程序中定义的属性的功能。在这种情况下,${MYSQL-HOST:127.0.0.1}引用的......