java1234

电脑版
提示:原网页已由神马搜索转码, 内容由www.java1234.com提供.

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.3xthis.invokeBeanFactoryPostProcessors(beanFactory); // 注册bean的工厂this.registerBeanPostProcessors(beanFactory);this.initMessageSource(); // Spring 从所有的 @Bean 定义中抽取出来了
BeanPostProcessor,然后都注册进 beanPostProcessors,等待后面的的顺序调用 注册
BeanPostProcessorthis.initApplicationEventMulticaster(); // 初始化事件监听多路广播器this.onRefresh(); // 一个空的实现this.registerListeners(); // 注册监听器this.finishBeanFactoryInitialization(beanFactory); // 到了spring加载流
程最复杂的一步,开始实例化所有的bdthis.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
从菜鸡到大神
项目实战课程

锋哥推荐