1.Spring读取xml配置文件的原理与实现

https://www.cnblogs.com/wyq178/p/6843502.html

2.首先使用xml配置文件的好处是参数配置项与代码分离,便于管理以及日后的维护和修改。
其次,xml是标准化的树节点文档,通用性强。
第三,在一个采用SSH2框架的java web项目中,容器在初次启动的时候,会先读取web.xml,如果web.xml里面配置了spring和struts2的监听器,则会通过监听器的配置路径找到spring和struts的配置文件。srping的配置文件是applicationContext.xml,而struts2的配置文件是struts.xml。至于底层解析可能是采用dom解析方式。

再来接着说解析后被调用的过程:
当容器启动并读取web.xml的时候,如果发现有配置监听器,则会先进入监听器的初始化方法,并执行里面的代码逻辑。spring监听器的配置为:
<!-- spring整合struts2的监听器 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<!-- 给监听器设置需要监听的spring配置文件路径 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>

注意第二段配置描述的spring的监听配置文件路径,也就是说spring容器加载的参数都是定义在项目src下的:applicationContext.xml中。这时候容器会读取该配置文件,从而知道了用户定义了哪些要初始化的Bean,要注入的对象等等。比如如果在spring中注入了数据持久层框架Hibernate,那么就会将Hibernage的sessionFaction初始化出来,并且将相应的数据源信息加载到内存中,从而在开发的时候,直接从容器中获取dao对象来进行数据持久层的相关操作。这样就不用在代码中再去设置要操作哪个数据库的,已经超时时间等相关参数了。从而做到我一开始说的配置项和代码的分离。

3.Spring介绍及配置(XML文件配置和注解配置)

https://www.cnblogs.com/zhaojiankai/p/8108832.html

4.bean与spring容器的关系

https://www.cnblogs.com/wuchanming/p/5426746.html

spring的xml文件的作用与实现原理的更多相关文章

  1. 曹工说Spring Boot源码(9)-- Spring解析xml文件,到底从中得到了什么(context命名空间上)

    写在前面的话 相关背景及资源: 曹工说Spring Boot源码(1)-- Bean Definition到底是什么,附spring思维导图分享 曹工说Spring Boot源码(2)-- Bean ...

  2. # 曹工说Spring Boot源码(10)-- Spring解析xml文件,到底从中得到了什么(context:annotation-config 解析)

    写在前面的话 相关背景及资源: 曹工说Spring Boot源码(1)-- Bean Definition到底是什么,附spring思维导图分享 曹工说Spring Boot源码(2)-- Bean ...

  3. 曹工说Spring Boot源码(12)-- Spring解析xml文件,到底从中得到了什么(context:component-scan完整解析)

    写在前面的话 相关背景及资源: 曹工说Spring Boot源码(1)-- Bean Definition到底是什么,附spring思维导图分享 曹工说Spring Boot源码(2)-- Bean ...

  4. 曹工说Spring Boot源码(15)-- Spring从xml文件里到底得到了什么(context:load-time-weaver 完整解析)

    写在前面的话 相关背景及资源: 曹工说Spring Boot源码(1)-- Bean Definition到底是什么,附spring思维导图分享 曹工说Spring Boot源码(2)-- Bean ...

  5. Spring AOP:面向切面编程,AspectJ,是基于spring 的xml文件的方法

    导包等不在赘述: 建立一个接口:ArithmeticCalculator,没有实例化的方法: package com.atguigu.spring.aop.impl.panpan; public in ...

  6. ideal中spring的xml文件没有提示的问题

    ideal中spring的xml文件没有提示的问题 今天第一次用ideal来练习spring,发现和视频中老师不一样,我的没有提示.老师的视频里,他写了个<mvc:a   就会有一系列的提示,然 ...

  7. 谈谈对XML的理解?说明Web应用中Web.xml文件的作用?

    谈谈对XML的理解?说明Web应用中Web.xml文件的作用? 解答:XML(Extensible Markup Language)即可扩展标记语言,它与HTML一样,都是SGML(Standard ...

  8. 曹工说Spring Boot源码(7)-- Spring解析xml文件,到底从中得到了什么(上)

    写在前面的话 相关背景及资源: 曹工说Spring Boot源码(1)-- Bean Definition到底是什么,附spring思维导图分享 曹工说Spring Boot源码(2)-- Bean ...

  9. 曹工说Spring Boot源码(8)-- Spring解析xml文件,到底从中得到了什么(util命名空间)

    写在前面的话 相关背景及资源: 曹工说Spring Boot源码(1)-- Bean Definition到底是什么,附spring思维导图分享 曹工说Spring Boot源码(2)-- Bean ...

随机推荐

  1. JVM学习(二)JVM加载类

    一.什么是类的加载 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构 ...

  2. Spring Eureka 本地Docker集群部署

    故事背景 最近因为产线使用的服务与发现服务,使用的是Spring Cloud Eureka集群部署,为了以后调试产线的问题,想在本地搭建和产线一样的环境.产线的所有服务都是基于K8s和Docker部署 ...

  3. python-数组+递归实现简单代数式运算

    #!/usr/bin/env python3# -*- coding: utf-8 -*-#思路: #代数式是为字符串 #先将字符串处理为数值与运算符号的数组 #逐项读入数组 #每一次处理不少过两个变 ...

  4. puTTY远程登录时,连接不上

    可能接收远程登录的SSH服务没启动 解决办法,控制台输入,service sshd start

  5. Elasticsearch数据库 | Elasticsearch-7.5.0应用基础实战

    Elasticsearch 是一个可用于分布式以及符合RESTful 风格的搜索和数据分析引擎.-- Elastic Stack 官网 关于Elasticsearch的"爱恨情仇" ...

  6. 俯瞰 Java 服务端开发

    原文首发于 github ,欢迎 star . Java 服务端开发是一个非常宽广的领域,要概括其全貌,即使是几本书也讲不完,该文将会提到许多的技术及工具,但不会深入去讲解,旨在以一个俯瞰的视角去探寻 ...

  7. Android Handler 分析学习

    一.Handler简介 Handler 是 Android 中用于线程间交互的机制.与其相关的概念有 Thread.Looper.Runnable.Message.MessageQueue 等. Go ...

  8. djano jwt 的使用

    1.5 JWT:使用djangorestframework-jwt模块进行用户身份验证    安装: pip install djangorestframework-jwt    添加应用:pytho ...

  9. 005 01 Android 零基础入门 01 Java基础语法 01 Java初识 05 Eclipse简介

    005 01 Android 零基础入门 01 Java基础语法 01 Java初识 05 Eclipse简介 Eclipse是一款集成开发工具--IDE. 集成开发环境(IDE,Integrated ...

  10. 07 Sublime Text3常用快捷键

    通用常用类(General) ↑↓←→:上下左右移动光标,注意不是不是 KJHL ! Alt:调出菜单 Ctrl + Shift + P:调出命令板(Command Palette) Ctrl + ` ...