因为各种各样的需求,我们不希望重启应用,而刷新Applicationcontext中的bean。一般根据情况,由以下几种策略。
1.刷新所有的bean。
WebApplicationContext context = WebApplicationContextUtils.getWebApplicationContext(ServletActionContext.getServletContext());
((AbstractRefreshableApplicationContext) context).refresh();
2.如果是bean是prototype的。由于每次都是新生成的bean,可以实时变化。所以一个简单的方法是可以讲需要实时刷新的bean设为prototype。
3.刷新指定的bean,适用于刷新数据库factory等链接中断,需要重新链接的情形。
DefaultListableBeanFactory defaultListableBeanFactory =(DefaultListableBeanFactory) xmlWebApplicationContext.getBeanFactory();
BeanDefinition beanDefinition = defaultListableBeanFactory.getBeanDefinition("pooledConnectionFactory");
beanDefinition.setBeanClassName(PooledConnectionFactory.class.getName());
defaultListableBeanFactory.registerBeanDefinition( "pooledConnectionFactory", beanDefinition);
4.借用插件例如jrebel进行热部署替换
分享到:
相关推荐
在Spring框架中,Bean的创建和初始化是IoC(Inversion of Control)容器的核心功能,这一过程涉及到多个步骤。以下是对Spring Bean创建初始化流程的详细解释: 1. **初始化ApplicationContext**: 开始时,通过`...
`BeanFactoryAware`接口使得Bean可以被注入`BeanFactory`,而`ApplicationListener`接口则可以让Bean监听到应用上下文的刷新事件,从而在合适的时机执行动态注册逻辑。 ```java public class BeanFactoryAwareBean ...
Spring Bean 加载过程源码解析文档 Spring Bean 加载过程是 Spring 框架中最核心的部分之一,涉及到 ApplicationContext 的初始化、Bean 的加载和注册等过程。在 Spring Boot 应用程序中,SpringApplication 负责...
- Spring容器提供了各种事件,如`ContextRefreshedEvent`(容器启动或刷新时触发)、`BeanInitializedEvent`(Bean初始化后触发)。通过实现`ApplicationListener`接口,可以监听并响应这些事件。 8. **Spring ...
Spring 创建 Bean 的过程 Spring 框架中,Bean 的创建过程是通过 ApplicationContext 实现的,ApplicationContext 是 BeanFactory 的扩展,提供了更多的功能。下面将详细介绍 Spring 创建 Bean 的过程。 Bean 的...
最后,`finishRefresh()`发布一个`ContextRefreshedEvent`,通知所有监听器Spring容器已经刷新完成。 总结来说,Spring的BeanDefinition装载过程涉及了从XML配置文件解析、BeanDefinition创建、BeanFactory初始化到...
ContextRefreshedEvent是一个容器刷新事件,表示Spring容器已经完成了所有的Bean初始化工作。 在ApplicationListener的实现类中,可以通过event.getApplicationContext().getBeansWithAnnotation获取到所有拥有特定...
在3.2.0版本中,Spring对性能进行了优化,包括更快的初始化、更少的内存消耗以及更高效的上下文刷新。这些改进有助于降低系统资源占用,提高应用运行效率。 八、兼容性和API改进 Spring 3.2.0保持了对旧版本API的...
`refresh()`方法是Spring IoC容器启动的关键,它负责初始化和刷新容器。在容器启动过程中,首先会解析XML配置或注解信息,生成BeanDefinition对象并存储到BeanFactory中。接着,`prepareBeanFactory()`和`...
最后,案例可能还会涉及Spring Cloud Config Server的配置,以及如何利用Spring Cloud Bus实时刷新各个服务的配置。 通过学习这个案例,开发者能够了解Spring Boot和Spring Cloud的整合过程,掌握微服务架构的基本...
- **自动装配**:Spring框架能够根据Bean类型自动找到匹配的Bean,并进行依赖注入。 #### 14. 区分不同模块中的自动生成Bean - **区分方法**:通过`@Primary`注解或者`@Qualifier`注解来区分同类型的多个Bean,...
在Spring框架中,ApplicationContext是应用的核心,它管理着所有Bean的生命周期。本章将深入探讨Spring应用上下文的生命周期,从启动准备阶段到关闭阶段,包括各个关键步骤和相关组件的作用。 1. **Spring 应用上...
1. **Spring配置**:Spring的配置文件需要包含DWR的bean定义,以及相关服务的bean定义。 2. **DWR配置**:DWR的`dwr.xml`配置文件用于声明可公开给JavaScript的Java方法。 3. **安全考虑**:为了防止XSS(跨站脚本...
Spring Cloud 动态刷新配置信息教程详解 Spring Cloud 动态刷新配置信息是指在不重启应用程序的情况下,实时生效配置的变化。这种机制可以帮助开发者快速地响应配置的变化,提高应用程序的灵活性和可维护性。 在 ...
3.6.4 刷新脚本化Bean 3.6.5 编写内嵌的脚本化Bean 3.7 小结 第4章 通知Bean 4.1 AOP简介 4.1.1 定义AOP术语 4.1.2 Spring对AOP的支持 4.2 创建典型的Spring切面 4.2.1 创建通知 4.2.2 定义切点和通知者 ...
**刷新Bean Factory的过程:** - **注册BeanFactoryPostProcessor:** 在Bean实例化之前执行,如启用AspectJ的编织、自定义自动装配配置器等。 - **注册BeanPostProcessor:** 在Bean实例化之后执行,如自定义属性编辑...
6. **容器刷新**:最后,调用`refresh()`方法,执行一系列初始化操作,包括调用`invokeBeanFactoryPostProcessors`和`finishBeanFactoryInitialization`,确保所有Bean定义被正确处理和初始化。 二、Spring Bean的...
总的来说,"SPeed-Cooperos 手写配置中心"是一个自定义的解决方案,旨在提供类似Spring Cloud Config的功能,让开发者能够在不重启应用的情况下动态刷新Bean的属性。通过对配置存储、变更通知、客户端SDK以及安全...
总的来说,Spring动态加载配置文件的实现涉及到文件监听、配置文件解析、应用上下文刷新以及Web容器的协同。通过这样的机制,开发者可以在开发阶段快速响应配置的更改,提高开发效率,同时降低生产环境因重启服务...