Java知识分享网 - 轻松学习从此开始!    

Java知识分享网

Java1234官方群25:java1234官方群17
Java1234官方群25:838462530
        
SpringBoot+SpringSecurity+Vue+ElementPlus权限系统实战课程 震撼发布        

最新Java全栈就业实战课程(免费)

springcloud分布式电商秒杀实战课程

IDEA永久激活

66套java实战课程无套路领取

锋哥开始收Java学员啦!

Python学习路线图

锋哥开始收Java学员啦!

Spring到SpringBoot训练营笔记 PDF 下载


分享到:
时间:2024-03-31 15:48来源:http://www.java1234.com 作者:转载  侵权举报
Spring到SpringBoot训练营笔记
失效链接处理
Spring到SpringBoot训练营笔记 PDF 下载

 
 
 
相关截图:
 

主要内容:

IOC容器概述
ApplicationContext接口相当于负责bean的初始化、配置和组装的IoC容器.
SpringApplicationContext提供了一些开箱即用的实现独立的应用可以使用
ClassPathXmlApplicationContext或者FileSystemXmlApplicationContextweb应用在web.xml配置监
听,提供xml位置和org.springframework.web.context.ContextLoaderListener即可初始化
WebApplicationContextIoC容器.
 
配置元数据
配置元数据配置了应用中实例的实例化、配置以及组装的规则,SpringIoC容器通过此配置进行管理
Bean. 配置元数据有以下几种方式:
基于XML配置: 清晰明了,简单易用
基于Java代码配置:无xml,通过 @Configuration 来声明配置、对象实例化与依赖关系
基于Java注解配置:少量的XML( <context:annotation-config/> ),通过注解声明实例化类与依
赖关系
后续的分析基于XML配置Java代码和注解大体上的机制是一样
 
实例化容器
实例化容器非常简单,只需要提供本地配置路径或者根据 ApplicationContext 的构造器提供相应的资
(Spring的另一个重要抽象)即可.
 
ApplicationContext context = new
ClassPathXmlApplicationContext("application.xml");

 

refresh()方法的实现代码如下
 
public void refresh() throws BeansException, IllegalStateException {
synchronized(this.startupShutdownMonitor) {
this.prepareRefresh(); // 准备工作
ConfigurableListableBeanFactory beanFactory =
this.obtainFreshBeanFactory(); // 获取ConfigurableListableBeanFactory最终的目的是
DefaultListableBeanFactory
this.prepareBeanFactory(beanFactory); // 准备bean工厂
try {
this.postProcessBeanFactory(beanFactory); // 一个空的实现,注意这里的
spring版本号为:5.3x
this.invokeBeanFactoryPostProcessors(beanFactory); // 注册bean的工厂
this.registerBeanPostProcessors(beanFactory);
this.initMessageSource(); // Spring 从所有的 @Bean 定义中抽取出来了
BeanPostProcessor,然后都注册进 beanPostProcessors,等待后面的的顺序调用 注册
BeanPostProcessor
this.initApplicationEventMulticaster(); // 初始化事件监听多路广播器
this.onRefresh(); // 一个空的实现
this.registerListeners(); // 注册监听器
this.finishBeanFactoryInitialization(beanFactory); // 到了spring加载流
程最复杂的一步,开始实例化所有的bd
this.finishRefresh();// 刷新完成工作
} catch (BeansException var9) {
if (this.logger.isWarnEnabled()) {
this.logger.warn("Exception encountered during context
initialization - cancelling refresh attempt: " + var9);
}
this.destroyBeans();
this.cancelRefresh(var9);
throw var9;
} finally {
this.resetCommonCaches();
}
}
}

 


 
------分隔线----------------------------

锋哥公众号


锋哥微信


关注公众号
【Java资料站】
回复 666
获取 
66套java
从菜鸡到大神
项目实战课程

锋哥推荐