首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从属性文件自动刷新spring bean属性

从属性文件自动刷新 Spring Bean 属性的功能可以通过 Spring 框架提供的 ReloadableResourceBundleMessageSource 类实现。

ReloadableResourceBundleMessageSource 是一个扩展了 ResourceBundleMessageSource 的类,它可以在运行时自动刷新属性文件,从而实现动态更新 Spring Bean 的属性。

使用 ReloadableResourceBundleMessageSource 的步骤如下:

  1. 在 Spring 配置文件中定义 ReloadableResourceBundleMessageSource 类型的 bean,并设置属性文件的路径和刷新时间间隔。
代码语言:txt
复制
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
   <property name="basenames">
        <list>
           <value>classpath:messages</value>
        </list>
    </property>
   <property name="cacheSeconds" value="1"/>
</bean>
  1. 在 Spring Bean 中注入 messageSource,并使用它获取属性值。
代码语言:txt
复制
@Autowired
private MessageSource messageSource;

public void printMessage() {
    String message = messageSource.getMessage("key", null, Locale.getDefault());
    System.out.println(message);
}
  1. 修改属性文件,并保存。
  2. 在运行时,Spring Bean 会自动更新属性值。

需要注意的是,ReloadableResourceBundleMessageSource 只能刷新 messageSource 中的属性值,不能刷新其他类型的 bean 属性。此外,刷新属性值需要一定的时间,因此如果属性文件过大或者网络连接不稳定,可能会影响刷新速度。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Spring - bean自动装配、抽象、作用域、依赖、继承、使用外部属性文件(3)

XML配置里的Bean自动装配 Spring IOC容器可以自动装配Bean,通过bean>的autowire属性里指定自动装配的模式 1)byName: 根据名字自动装配 2)byType: 根据类型自动装配...1)在Bean配置文件里设置autowire属性进行自动装配将会配置Bean的所有属性。...然后,若只希望装配个别属性时,autowire属性就不够灵活了 2)要么根据类型自动匹配,要么根据名称自动装配,不能两者都有 bean之间的关系:继承和依赖 1)Spring允许继承bean的配置,被继承的...Bean实例,若只想把父Bean作为模版,可以设置bean>的abstact属性为true,这样spring将不会实例化这个Bean 5)并不是bean>元素里的所有都会被继承,如:autowire...会从指定的location属性文件里加载属性,并使用这些属性来替换变量${var} <context:property-placeholder location="classpath*:db.properties

44610

Spring源码解析(三):bean容器刷新

一、Spring源码基础组件 阅读源码时候,接口与类过多,可以对照这里查看对应的关系 1、bean定义接口体系 2、bean工厂接口体系 3、ApplicationContext上下文体系 二、容器刷新...上一讲Spring源码解析(二):bean容器的创建、默认后置处理器、扫描包路径bean主要是刷新上下文的准备工作 进入refresh();方法,此方法定义在注解上下文父类AbstractApplicationContext...resetCommonCaches(); } } } 1、刷新前预处理 prepareRefresh(); 准备此上下文以进行刷新,设置其启动日期和活动标志,以及执行属性源的任何初始化 protected...initPropertySources(); // 2.创建环境对象,验证需要的属性文件是否都放到环境中 getEnvironment().validateRequiredProperties()...* 5.在应用代码就可以通过类型自动装配把工厂实例和ApplicationContext实例设置到自定义bean的属性中 * * 例如:这几个属性都会被自动设置,虽然没有在显示的在bean

9110
  • Spring 自动装配Bean

    四种类型自动装配 byName自动装配 byName自动装配遵循约定:为属性自动装配ID与该属性的名字相同的Bean。..."/> bean> 通过autowire属性,Spring就可以利用此信息自动装配kenny的剩下的instrument属性了。...byType自动装配 byType自动装配通过寻找哪一个Bean的类型与属性的类型相匹配。如果找到多个与需要装配的属性类型相匹配的Bean,Spring会直接抛出异常。...但在实际中,XML中可能存在多个类型一样的Bean,为了解决这种情况,Spring提供了两种解决方法: ① 为自动装配标识一个首选Bean 使用bean>元素的primary属性。...--Bean declarations go here --> 这样的话,Spring配置文件里的所有Bean都将使用byType自动装配,除非Bean自己配置了autowire属性。

    69120

    聊聊spring项目中如何动态刷新bean

    后边跟他讨论了一个方案,可以实现一个监听配置文件变化的程序,当监听到文件变化,进行相应的变更操作。...具体流程如下图片在这些步骤,比较麻烦就是如何动态刷新bean,因为朋友是spring项目,今天就来聊下在spring项目中如何实现bean的动态刷新实现思路了解spring的朋友,应该知道spring的单例...bean是缓存在singletonObjects这个map里面,所以可以通过变更singletonObjects来实现bean的刷新。...但spring作为一个极其优秀的框架,他提供了让我们自己管理bean的扩展点。...的过程,下面我们以一个配置变更实现bean刷新例子,来演示以上步骤示例1、在项目src/main/rescoures目录下创建属性配置文件config/config.properties图片并填入测试内容

    31560

    聊聊spring项目中如何动态刷新bean

    后边跟他讨论了一个方案,可以实现一个监听配置文件变化的程序,当监听到文件变化,进行相应的变更操作。...具体流程如下 在这些步骤,比较麻烦就是如何动态刷新bean,因为朋友是spring项目,今天就来聊下在spring项目中如何实现bean的动态刷新 #02: 实现思路 了解spring的朋友,应该知道...spring的单例bean是缓存在singletonObjects这个map里面,所以可以通过变更singletonObjects来实现bean的刷新。...但spring作为一个极其优秀的框架,他提供了让我们自己管理bean的扩展点。...的过程,下面我们以一个配置变更实现bean刷新例子,来演示以上步骤 #04: 示例 01 在项目src/main/rescoures目录下创建属性配置文件config/config.properties

    80220

    Spring | Bean自动装配详解

    5.1、自动装配说明 自动装配是使用spring满足bean依赖的一种方法 spring会在应用上下文中为某个bean寻找其依赖的bean。...Spring中bean有三种装配机制,分别是: 在xml中显式配置; 在java中显式配置; 隐式的bean发现机制和自动装配。...【重要】 Spring的自动装配需要从两个角度来实现,或者说是两个操作: 组件扫描(component scanning):spring会自动发现应用上下文中所创建的bean; 自动装配(autowiring...):spring自动满足bean之间的依赖,也就是我们说的IoC/DI; 组件扫描和自动装配组合发挥巨大威力,使得显示的配置降低到最少。...使用AutoWired我们可以不用编写Set方法了,前提是这个自动装配的属性在IOC(Spring) 容器中存在 @Autowired默认使用 byType来装配属性,如果匹配到类型的多个实例,再通过

    73010

    Spring-引用Bean的属性值

    概述 实例 基于XML方式的引用 基于注解的引用 概述 将应用系统的配置信息存放在配置文件中并非总是最合适的,如果应用以集群的方式部署,或者希望在运行期动态调整引用的某些配置,这时,将配置信息放到数据库中不但方便集中管理...早期版本,如果想在配置文件中引用另外一个Bean的属性值是比较麻烦的,Spring3.0则提供了优雅的解决方案....在Spring3.0中,可以通过类似 #{beanName.beanPro}的方式方便的引用另外一个Bean的值。...---- 基于注解的引用 在基于注解和基于JAVA类配置的Bean中,可以通过@Value(“#{beanName.beanPro}”)的注解形式引用Bean的属性值 ?...通过在配置文件中配置context:component-scan ,扫描标注了注解的POJO,实例化并缓存。

    73020

    spring-自动加载配置文件使用属性文件注入

    在上一篇jsf环境搭建的基础上 , 加入spring框架 , 先看下目录结构 src/main/resources 这个source folder 放置web项目所需的主要配置,打包时,会自动打包到WEB-INF...自动加载配置文件 在web项目中,可以让spring自动加载配置文件(即上图中的src/main/resouces/spring下的xml文件),WEB-INF/web.xml中参考以下设置: 1 bean> 27 注:classpath:properties/*.properties表示运行时 , spring容器会自动加载classpath\properties目录下的所有以....properties后缀结尾的文件 ,  我们在src/main/resources/properties/下放置一个product.properties属性文件 , 内容如下: 1 product.id...=3 2 product.no=n95 3 product.name=phone 该文件被spring自动加载后 , 就可以用里面定义的属性值 , 为Bean做setter属性注入 , 即配置文件中的<

    1.2K70

    03 Spring框架 bean的属性以及bean前处理和bean后处理

    接下来我们介绍bean的相关属性: ①bean在Spring中有两种基本类型(这两种比较常用,其他的我们不作介绍):singleton和prototype(单例和原型),Spring中默认使用单例,若请求为原型...,那么Spring就会新建一个bean实例然后返回给程序。...单例和原型可以在bean中用scope属性设置 bean id="" class="" scope="singleton/prototype"> 单例和原型有哪些区别?...(二)它们创建对象的时机不同,单例在默认在Spring主配置文件被加载的时候就会被创建,而原型则是需要使用的时候创建对象。...想要使用这个方法,我们不仅需要定义这个类,还要在Spring主配置文件中注册一下: bean class="beanBeforeAndAfter.postProcessor"/> 这样在产生bean之间就会输出

    75760

    【Spring源码解读】bean标签中的属性

    说明 今天在阅读Spring源码的时候,发现在加载xml中的bean时,解析了很多标签,其中有常用的如:scope、autowire、lazy-init、init-method、destroy-method...另外,说明一下,使用的Spring源码版本为当前最新版本5.2.0.BUILD-SNAPSHOT,跟老版本中的相关代码可能会有少数差异。...Spring中对属性标签的解析 解析Spring中bean的属性标签的源码位置位于类:BeanDefinitionParserDelegate 的 parseBeanDefinitionAttributes...= null) { // 如果当前 bean 没有设置 scope 属性且当前 bean 是其他 bean 的内部 bean,则设置为其外部 bean 的 scope 属性值...(FACTORY_BEAN_ATTRIBUTE)); } return bd; } 里面可以看到对 bean 标签中的很多属性进行了解析,接下来的几篇里,就来看看每个属性的作用。

    71130

    Spring学习笔记4_Bean属性注入

    本章目录 Spring学习笔记4_Bean属性注入 1.构造方法注入 2.Setter方法注入 3.集合属性的注入 3.1、List属性注入 3.2、Set属性注入 3.3、Map属性注入...3.4、properties属性注入 4.名称空间p和c的使用 5.SpEl 提示:点击文章底部的“阅读原文”查看以前所有的笔记 在 spring 中 bean 的属性注入有两种 1.构造器注入...使用 ref 来引入另一个 bean 对象,完成 bean 之间注入 3.集合属性的注入 在 spring 中对于集合属性,可以使用专门的标签来完成注入例如:list set map properties...在 applicationContext.xml 文件中添加 p 名称空间简化 setter 注入 ? ? 使用 c 名称空间来解决构造器注入 ?...在 applicationContext.xml 文件中添加 c 名称空间 ? ? 注:如果 c 或 p 名称空间操作的属性后缀是”-ref”代表要引入另一个已经存在的 bean,例如 ? 5.

    55750

    Spring框架中 Bean对象属性值的注入

    在Spring框架中,主要有两种常用的 Bean对象属性注入值方式: 1、set注入:是通过调用对象的setter方法为Bean对象属性赋值 2、构造注入:是通过Bean对象的构造函数为Bean对象属性注入值...注意:如果一个Bean对象同时存在set注入和构造注入两种方法,Spring在为Bean对象属性赋值时,会先使用set注入方式为属性赋值,再使用构造注入为Bean对象属性赋值。...在 Spring 中为 Bean 对象注入值分为三种类型: 1、直接量值的注入: Spring 直接量值的注入指的是通过Spring IOC为对象的8种基本类型封装类以及String类型的属性注入值。...:configs.properties"/> 再修改Bean配置文件,使用spring表达式取值: bean id="dataSource" class="com.jt.common.utils.ConnectionPool...2、集合对象值的注入: 在spring中为集合对象注入值时,主要是通过使用配置文件中的标签对属性值进行封装,spring在创建对象时会根据对应的标签生成相对应的对象,来进行属性值的注入 public class

    4.1K10

    Spring-04 Bean的自动装配

    Spring-04 Bean的自动装配 Bean的自动装配 1.自动装配说明 自动装配是使用spring满足bean依赖的一种方法。 spring会在应用上下文中为某个bean寻找其依赖的bean。...Spring中bean有三种装配机制,分别是: 在xml中显式配置; 在java中显式配置; 隐式的bean发现机制和自动装配。 这里我们主要讲第三种:自动化的装配bean。...Spring的自动装配需要从两个角度来实现,或者说是两个操作: 组件扫描(component scanning):spring会自动发现应用上下文中所创建的bean; 自动装配(autowiring):...综上: byName: 需要保证所有的bean的id唯一,并且这个bean需要和自动注入的属性的set的方法的值一致!...byType: 需要保证所有的bean的class唯一,并且这个bean需要和自动注入的属性的类型一致!

    61320

    【Spring】005-Bean的自动装配

    一、概述 1、Spring中Bean的三种装配方式 ①在xml中显式配置(之前用的); ②在java中显式配置(见【Spring】007-使用JavaConfig实现配置); ③隐式自动装配(重要);...1、byName自动装配 第一步:修改配置文件beans.xml bean> 测试结果: 汪~ 喵~ 3、总结 使用byName实现自动装配要保证要自动装配的属性名与bean的id一直,...且bean的id必须唯一的; 使用byType实现自动装配要保证存在要自动装配的属性类型对应的bean,且bean的class必须是唯一的; 三、注解实现自动装配 1、使用注解的要求 ①导入约束:context...第一步:修改配置文件beans.xml,添加一个id不与属性名一致的bean <?xml version="1.0" encoding="UTF-8"?

    8510

    Spring4.0MVC学习资料,注解自动扫描bean,自动注入bean(二)

    这张我们主要介绍spring4.0的自动扫描功能,以及对bean的过滤等特性进行学习。 好吧,废话少说,我们来看看代码吧。...最新稳定版新特性,自动扫描bean,自动注入bean * @author Herman.Xiong * @date 2014年7月18日14:49:42 */ public class Test1...{ /** * @see spring4.0自动扫描bean,自动注入bean */ public static void test0(){ //1.加载配置文件 ApplicationContext...)ctx.getBean("testAction"); //3.打印bean属性 System.out.println(testAction); //4.调用bean对象的方法 testAction.testAction...-- 注:节点用于通知Spring容器扫描组件,base-package属性用于指定将要被扫描的组件所在的包名 这里将自动的配置扫描com.herman.ss.pojo

    50420
    领券