- 浏览: 50853 次
- 性别:
- 来自: 南京
文章分类
最新评论
spring容器初始化完成后,调用finishRresh
该方法入口wac.refresh()
AbstractApplicationContext#finishRresh
AbstractApplicationContext#publishEvent
SimpleApplicationEventMulticaster#multicastEvent
如:springmvc中注册的SourceFilteringListener implements SmartApplicationListener,会在容器初始化后,回调FrameworkServlet#onRefresh以完成其初始化操作
该方法入口wac.refresh()
AbstractApplicationContext#finishRresh
/** * Finish the refresh of this context, invoking the LifecycleProcessor's * onRefresh() method and publishing the * {@link org.springframework.context.event.ContextRefreshedEvent}. */ protected void finishRefresh() { // Initialize lifecycle processor for this context. initLifecycleProcessor(); // Propagate refresh to lifecycle processor first. getLifecycleProcessor().onRefresh(); //发布容器初始化完成事件ContextRefreshedEvent // Publish the final event. publishEvent(new ContextRefreshedEvent(this)); // Participate in LiveBeansView MBean, if active. LiveBeansView.registerApplicationContext(this); }
AbstractApplicationContext#publishEvent
/** * Publish the given event to all listeners. * <p>Note: Listeners get initialized after the MessageSource, to be able * to access it within listener implementations. Thus, MessageSource * implementations cannot publish events. * @param event the event to publish (may be application-specific or a * standard framework event) */ public void publishEvent(ApplicationEvent event) { Assert.notNull(event, "Event must not be null"); if (logger.isTraceEnabled()) { logger.trace("Publishing event in " + getDisplayName() + ": " + event); } getApplicationEventMulticaster().multicastEvent(event); if (this.parent != null) { this.parent.publishEvent(event); } }
SimpleApplicationEventMulticaster#multicastEvent
@SuppressWarnings("unchecked") public void multicastEvent(final ApplicationEvent event) { //SourceFilteringListener //ContextRefreshListener for (final ApplicationListener listener : getApplicationListeners(event)) { Executor executor = getTaskExecutor(); if (executor != null) { executor.execute(new Runnable() { public void run() { listener.onApplicationEvent(event); } }); } else { listener.onApplicationEvent(event); } } }
如:springmvc中注册的SourceFilteringListener implements SmartApplicationListener,会在容器初始化后,回调FrameworkServlet#onRefresh以完成其初始化操作
发表评论
-
spring疑难解惑-循环依赖的解决
2020-06-17 23:27 554AbstractAutowireCapableBeanFact ... -
spring容器
2019-07-14 08:47 308private final ServletContainer ... -
spring容器
2019-07-13 23:35 0spring容器与springmvc容器 73 ... -
spring源码学习系列2.6-spring ioc原理-codes
2019-03-05 22:56 491web.xml <listener> < ... -
spring源码学习系列3.4-spring mvc原理-codes
2019-01-21 22:46 302本篇章从核心类角度解读springmvc的原理 web.xm ... -
spring源码学习系列4.2-spring aop原理-codes
2018-12-04 22:29 566jdk: Proxy InvocationHandler ... -
spring源码学习系列4.1-spring实现对ibatis的事务管理
2018-09-17 15:44 586事务由spring管理,可以理解为由spring管理数据库连接 ... -
spring源码学习系列4-3种常用的自动代理创建器
2018-09-02 15:48 5773种自动代理器是 AnnotationAwareAspectJ ... -
spring源码学习系列1.2-spring事务代理深入分析2
2018-05-27 19:46 457提示: BeanPostProcessor AopUtils ... -
spring源码学习系列2.5-ApplicationContext初始化-设计模式
2018-05-08 15:17 528ApplicationContext容器的初始化可以通过模板方 ... -
spring源码学习系列3.3-DispatcherServlet初始化-设计模式
2018-05-07 11:12 630springmvc的核心是DispatcherServlet ... -
封装spring-security
2018-01-23 19:33 523github地址: https://github.com/ne ... -
eclipse导入spring源码
2018-05-12 07:20 986spring在git上的项目时gradle管理jar包的,所以 ... -
spring源码学习系列3.2.3-异常页面拦截机制
2017-07-29 19:07 777前序:本文的意义在于了解 tomcat处理异常 请求访问 ... -
spring源码学习系列3.2.2-How to bind String to Date
2017-07-17 12:40 604springmvc开发中,经常需将界面日期数据(String) ... -
spring源码学习系列3.2.1-command对象的绑定
2017-05-28 12:00 995在<spring源码学习系列3.2-handlerAda ... -
spring源码学习系列3.2-handlerAdapter执行
2017-05-28 12:01 414DispatcherServlet#doDispatch中调用 ... -
spring源码学习系列3.1-handlerMapping初始化
2017-05-28 11:56 706SimpleUrlHandlerMapping的继承体系 or ... -
spring源码学习系列3-springmvc原理
2017-05-28 11:56 461问题: springmvc是如何控 ... -
spring源码学习系列2-容器初始化入口-refresh
2017-04-23 21:33 480context=XmlWebApplicationContex ...
相关推荐
在深入理解`spring-cglib-repack-3.2.4.jar`和`spring-objenesis-repack-2.5.1.jar`这两个jar包之前,我们先来了解一下Spring框架的核心概念。 Spring框架的核心包括依赖注入(Dependency Injection,DI)和面向切...
在“gradle-2.4-all.zip”压缩包中,你将找到Gradle 2.4的所有组件,包括二进制文件、库和必要的文档。这个版本包含了以下核心特性: 1. **依赖管理**:Gradle的核心功能之一就是高效地管理项目依赖。它能够自动...
在Spring框架的高版本源码分析过程中,可能会遇到缺少特定库的情况,比如"spring-cglib-repack-3.2.4.jar"和"spring-objenesis-repack-2.4.jar"这两个文件。这些文件是Spring框架运行时的重要组成部分,对于理解和...
然而,有时候在导入Spring项目时,可能会遇到一些问题,例如标题中提到的"spring-cglib-repack-3.2.4.jar"和"spring-objenesis-repack-2.4.jar"这两个jar包的缺失。这些jar包对于Spring框架的正常运行至关重要,因为...
在给定的文件中,我们关注的是两个特定的库:`spring-objenesis-repack-2.4.jar` 和 `spring-cglib-repack-3.2.4.jar`,它们是Spring框架的扩展和补充。 `spring-objenesis-repack-2.4.jar` 包含了Objenesis库的一...
标题提到的"spring-cglib-repack-3.2.4.jar"和"spring-objenesis-repack-2.4.jar"是两个关键的Java档案(JAR)文件,它们在Spring源码的编译和运行时起着至关重要的作用。下面将详细解释这两个JAR包的作用以及与...
例如,如果项目中有`spring-jdbc`依赖,那么Spring Boot会自动配置数据源和JdbcTemplate。 2. Starter POMs:Starter POMs是一组预先配置好的依赖集合,开发者只需在`pom.xml`中引入相应的starter,就能快速构建...
xbean-spring-2.4xbean-spring-2.4
总之,`json-lib-2.4-jdk15.jar` 和 `json-lib-2.4-jdk15-sources.jar` 提供了一个方便的工具包,使得Java开发者能够在旧版本的Java环境中轻松处理JSON数据。了解如何使用这个库以及它的源代码,可以帮助开发者更...
6 自己写Spring-1.mp4 7 自己写Spring-2.mp4 8 自己写Spring-3.mp4 9 自己写Spring-4.mp4 10 自己写Spring-5.mp4 11 自己写Spring-6.mp4 12 Spring源码阅读 - this.AnnotatedBeanDefinitionReader-1.mp4 13 ...
6 自己写Spring-1.mp4 7 自己写Spring-2.mp4 8 自己写Spring-3.mp4 9 自己写Spring-4.mp4 10 自己写Spring-5.mp4 11 自己写Spring-6.mp4 12 Spring源码阅读 - this.AnnotatedBeanDefinitionReader-1.mp4 13 ...
6 自己写Spring-1.mp4 7 自己写Spring-2.mp4 8 自己写Spring-3.mp4 9 自己写Spring-4.mp4 10 自己写Spring-5.mp4 11 自己写Spring-6.mp4 12 Spring源码阅读 - this.AnnotatedBeanDefinitionReader-1.mp4 13 ...
6 自己写Spring-1.mp4 7 自己写Spring-2.mp4 8 自己写Spring-3.mp4 9 自己写Spring-4.mp4 10 自己写Spring-5.mp4 11 自己写Spring-6.mp4 12 Spring源码阅读 - this.AnnotatedBeanDefinitionReader-1.mp4 13 ...
2018-02-08从git_hub上拉取的Spring源码打成的jar,构建Spring-beans5.0以上源码所缺失的两个jar包spring-cglib-repack-3.2.6.jar,spring-objenesis-repack-2.6.jar
最后,我们可以使用内置的Tomcat服务器通过`mvn spring-boot:run`命令运行应用,或者构建为jar文件部署到云服务器。 本项目通过实践的方式,帮助初学者掌握Spring Boot 2.4中的RESTful CRUD操作,理解Spring Boot...
这两个模块的 jar 文件,`spring-data-commons-1.7.2.RELEASE.jar` 和 `spring-data-jpa-1.5.2.RELEASE.jar`,包含了它们各自的功能实现和依赖。在实际项目中,将这些 jar 文件添加到类路径,就可以利用 Spring Data...
版本1.2.6是Spring早期的一个稳定版本,对于初学者和想要深入理解Spring工作原理的开发者来说,研究其源码是一个非常有价值的学习过程。 在Spring 1.2.6源码中,我们可以看到以下几个关键知识点: 1. **依赖注入...
Spring Security OAuth2 是一个强大的框架,用于为Java应用提供OAuth2和OpenID Connect...通过阅读和分析`spring-security-oauth-master`中的源码,可以更深入地了解其实现细节,有助于在实际项目中灵活运用和定制。
Archiva是Maven,Continuum和ANT等构建工具的理想伴侣。 Archiva提供了多种功能,其中包括远程存储库代理,安全访问管理,构建工件存储,交付,浏览,索引和使用情况报告,可扩展的扫描功能等等!...