`

Spring刷新bean

 
阅读更多

 因为各种各样的需求,我们不希望重启应用,而刷新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创建初始化流程.docx

    在Spring框架中,Bean的创建和初始化是IoC(Inversion of Control)容器的核心功能,这一过程涉及到多个步骤。以下是对Spring Bean创建初始化流程的详细解释: 1. **初始化ApplicationContext**: 开始时,通过`...

    spring运行过程中动态注册bean

    `BeanFactoryAware`接口使得Bean可以被注入`BeanFactory`,而`ApplicationListener`接口则可以让Bean监听到应用上下文的刷新事件,从而在合适的时机执行动态注册逻辑。 ```java public class BeanFactoryAwareBean ...

    springBean加载过程源码解析文档,附有代码类名和行数

    Spring Bean 加载过程源码解析文档 Spring Bean 加载过程是 Spring 框架中最核心的部分之一,涉及到 ApplicationContext 的初始化、Bean 的加载和注册等过程。在 Spring Boot 应用程序中,SpringApplication 负责...

    spring bean加载

    - Spring容器提供了各种事件,如`ContextRefreshedEvent`(容器启动或刷新时触发)、`BeanInitializedEvent`(Bean初始化后触发)。通过实现`ApplicationListener`接口,可以监听并响应这些事件。 8. **Spring ...

    Spring创建Bean的过程

    Spring 创建 Bean 的过程 Spring 框架中,Bean 的创建过程是通过 ApplicationContext 实现的,ApplicationContext 是 BeanFactory 的扩展,提供了更多的功能。下面将详细介绍 Spring 创建 Bean 的过程。 Bean 的...

    Spring源码学习四:BeanDefinition装载前奏曲1

    最后,`finishRefresh()`发布一个`ContextRefreshedEvent`,通知所有监听器Spring容器已经刷新完成。 总结来说,Spring的BeanDefinition装载过程涉及了从XML配置文件解析、BeanDefinition创建、BeanFactory初始化到...

    Spring启动后获取所有拥有特定注解的Bean实例代码

    ContextRefreshedEvent是一个容器刷新事件,表示Spring容器已经完成了所有的Bean初始化工作。 在ApplicationListener的实现类中,可以通过event.getApplicationContext().getBeansWithAnnotation获取到所有拥有特定...

    spring3.2 源码

    在3.2.0版本中,Spring对性能进行了优化,包括更快的初始化、更少的内存消耗以及更高效的上下文刷新。这些改进有助于降低系统资源占用,提高应用运行效率。 八、兼容性和API改进 Spring 3.2.0保持了对旧版本API的...

    这一次搞懂Spring的Bean实例化原理操作

    `refresh()`方法是Spring IoC容器启动的关键,它负责初始化和刷新容器。在容器启动过程中,首先会解析XML配置或注解信息,生成BeanDefinition对象并存储到BeanFactory中。接着,`prepareBeanFactory()`和`...

    Spring cloud与Spring boot 集成完整案例

    最后,案例可能还会涉及Spring Cloud Config Server的配置,以及如何利用Spring Cloud Bus实时刷新各个服务的配置。 通过学习这个案例,开发者能够了解Spring Boot和Spring Cloud的整合过程,掌握微服务架构的基本...

    Spring的经典面试题

    - **自动装配**:Spring框架能够根据Bean类型自动找到匹配的Bean,并进行依赖注入。 #### 14. 区分不同模块中的自动生成Bean - **区分方法**:通过`@Primary`注解或者`@Qualifier`注解来区分同类型的多个Bean,...

    第二十章 Spring 应用上下文生命周期(ApplicationContext Lifecycle)1

    在Spring框架中,ApplicationContext是应用的核心,它管理着所有Bean的生命周期。本章将深入探讨Spring应用上下文的生命周期,从启动准备阶段到关闭阶段,包括各个关键步骤和相关组件的作用。 1. **Spring 应用上...

    spring+dwr无刷新聊天室

    1. **Spring配置**:Spring的配置文件需要包含DWR的bean定义,以及相关服务的bean定义。 2. **DWR配置**:DWR的`dwr.xml`配置文件用于声明可公开给JavaScript的Java方法。 3. **安全考虑**:为了防止XSS(跨站脚本...

    Spring Cloud 动态刷新配置信息教程详解

    Spring Cloud 动态刷新配置信息教程详解 Spring Cloud 动态刷新配置信息是指在不重启应用程序的情况下,实时生效配置的变化。这种机制可以帮助开发者快速地响应配置的变化,提高应用程序的灵活性和可维护性。 在 ...

    Spring in Action(第二版 中文高清版).part2

    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 定义切点和通知者 ...

    spring-analysis

    **刷新Bean Factory的过程:** - **注册BeanFactoryPostProcessor:** 在Bean实例化之前执行,如启用AspectJ的编织、自定义自动装配配置器等。 - **注册BeanPostProcessor:** 在Bean实例化之后执行,如自定义属性编辑...

    深入解析Spring IoC源码:核心机制与实践应用

    6. **容器刷新**:最后,调用`refresh()`方法,执行一系列初始化操作,包括调用`invokeBeanFactoryPostProcessors`和`finishBeanFactoryInitialization`,确保所有Bean定义被正确处理和初始化。 二、Spring Bean的...

    手写配置中心,实现无需重启应用实现 Bean 属性动态刷新

    总的来说,"SPeed-Cooperos 手写配置中心"是一个自定义的解决方案,旨在提供类似Spring Cloud Config的功能,让开发者能够在不重启应用的情况下动态刷新Bean的属性。通过对配置存储、变更通知、客户端SDK以及安全...

    Spring动态加载配置文件

    总的来说,Spring动态加载配置文件的实现涉及到文件监听、配置文件解析、应用上下文刷新以及Web容器的协同。通过这样的机制,开发者可以在开发阶段快速响应配置的更改,提高开发效率,同时降低生产环境因重启服务...

Global site tag (gtag.js) - Google Analytics