spring程序入口和xml解析

本文深入探讨Spring框架的历史、核心组件及加载流程。介绍spring-context和logback-classic等关键jar包,自定义标签的实现机制,以及spring容器的多种加载方式,如AnnotationConfigApplicationContext和ClassPathXmlApplicationContext。同时,解析了spring容器加载的模板方法模式、委托模式、装饰模式和SPI设计思想。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、spring历史

  spring是一个开源框架,2002年10月Rod Johnson创建,在《Expert One-on-One J2EE Design and Development》一书中第一次提出了spring核心思想,使Java EE开发变得更加简单。

2、spring核心jar包

  spring-context,logback-classic(spring日志包)

3、spring自定义标签的引入

   自定义标签,必须引入xsd文件,可以在jar包对应的spring.schemas里面找到对应的命名空间和xsd对应的路径

4、spring容器的加载方式

AnnotionConfigApplicationContext(“com.xxx”)(注解方式)、

ClassPathXmlApplicationContext("spring.xml")、基于xml加载spring配置文件,启动spring容器

FileSystemXmlApplicationContext(绝对路径)、

EmbeddedWebApplicationContext(springboot  tomcat启动,加载方式)

5、spring容器加载流程

模板方法模式:有一个骨架类和钩子,整体流程由骨架类实现,某些特定方法由子类实现。核心是钩子方法。

委托模式:某个功能本类不实现,通过委托给其他类来实现。

装饰模式:对原有类的增强。核心是持有被装饰类的引用。

SPI设计思想:通过读取配置文件获取实现类。

BeanDefinition作用:spring实例化必须的对象。

spring入口和xml解析

总结:

1、将配置文件location放到内存,refresh beanFactory

2、从内存获取配置文件location,通过流的方式将配置文件读取到内存中,通过inputsource读取配置文件,并且将配置文件存到Document对象中

3、解析我们的Bean对象,并放到内存里面

4、解析包括我们的默认标签和自定义标签的解析

5、默认标签解析 分为三步。

     第一步:创建GenericBeanDefinition对象,将默认元素和子元素(lookupmethod,replacemothod)放进去。包装成BeanDefinitionHolder对象

     第二步:装饰我们的holder对象,根据标签属性,p:,c:。

     第三步:将我们的对象放到内存里面,concurrentMap

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值