`
chembo
  • 浏览: 940927 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

动态更新properties

阅读更多
 public static void reloadProperties() {
	        //Get a list of files loaded
	     ArrayList<String> files = getFileList();

	     //Cycle through list and reload all files
	        for (int icnt =0;icnt < files.size();icnt++) {
	            loadPropertiesFile(files.get(icnt),true);
	        }
	    }
	 
	  public static boolean loadPropertiesFile(String filename, boolean reload) {
	      //If property file is already loaded and reload is required then remove it from the loaded file list.
	      if (propfiles.containsKey(filename)) {
	             if (!reload) return true;
	             propfiles.remove(filename);
	         }

	             try {
	              //Find the property file on the class path and load it.
	              System.out.println("Loading properties file: "+filename);
	                 ClassLoader loader = Thread.currentThread().getContextClassLoader();
	                 InputStream is = loader.getResourceAsStream(filename);
	                 Properties props = new Properties();
	                 props.load(is);
	                 //Add it to the hashtable
	                 propfiles.put(filename,props);
	                 return true;
	             }
	             catch (Exception e) {
	              System.out.println("Failed to load properties file: "+e.getMessage());
	                 return false;
	             }
	     }
	  
	     /**
	      * getFileList  - returns a sorted list of property file names that have been loaded
	      */
	     public static ArrayList<String> getFileList() {
	         //Get empty list
	      ArrayList<String> files = new ArrayList<String>();

	      //Cycle through property files hash table and add names to the return list
	         Set<String> keys = propfiles.keySet();
	         Iterator it = keys.iterator();
	         while (it.hasNext()) {
	             files.add((String) it.next());
	         }

	         //Sort list
	         Collections.sort(files);
	         return files;
	     }
	     
	     public static String getValue(String propertiesFile,String key) {
	         // If property file is not load it then load it now
	      if (!propfiles.containsKey(propertiesFile)) {
	             if (!loadPropertiesFile(propertiesFile,true)) {
	                 throw new RuntimeException("Failed to load properties file: "+propertiesFile);
	             }
	         }
	      //Get the property file from the hashmap
	         Properties props = propfiles.get(propertiesFile);
	         //Return the property value
	         try {
	          System.out.println("Getting properties: "+key);
	             return props.getProperty(key);
	         }
	         catch (Exception e) {
	          System.out.println("Failed to find property in file");
	             throw new RuntimeException("Failed to find property");
	         }
	     }

       public static void main(String[] args) {

		 String value=getValue("my.properties","key1");
		  System.out.println("Printing Value:" + value);
		  reloadProperties();
		  value=getValue("my.properties","key1");
		  System.out.println("Printing Value:" + value);
		
	}

分享到:
评论

相关推荐

    java 动态修改Properties,src下或者指定路径

    7. 使用`prop.setProperty(key, value)`设置或更新Properties中的键值对。 8. `prop.store(fos, "Update '" + key + "' value")`将修改保存回文件,并添加一个描述性注释。 9. 最后,关闭`fos`以确保所有更改都被...

    动态加载properties

    动态加载`properties`文件是一项关键技能,特别是在大型应用程序中,它允许程序在运行时根据需要更新配置,而无需重启服务。下面我们将深入探讨动态加载`properties`的相关知识点。 1. **什么是.properties文件?**...

    Drools7 + Springboot2 动态更新规则

    在本文中,我们将深入探讨如何将Drools 7与Spring Boot 2集成,实现动态更新规则的功能。Drools是一款强大的业务规则管理系统,而Spring Boot是Java领域广泛使用的微服务开发框架。通过结合这两者,我们可以构建一个...

    properties插件

    8. 运行时热更新:某些插件允许在应用程序运行时动态更新配置,无需重启服务,这对于快速调试和调整配置很有帮助。 在Maven中,常见的properties插件如maven-resources-plugin,可以通过`&lt;build&gt;&lt;plugins&gt;`配置进行...

    Configuration对properties、xml配置文件的【增删改查】及动态加载

    这个库使得在运行时对配置进行【增删改查】操作变得简单,同时支持动态加载,从而实现配置的实时更新。 一、Apache Commons Configuration库介绍 Apache Commons Configuration库是Apache软件基金会的一个项目,...

    java读写properties配置文件

    `Properties`类提供了`setProperty`方法来设置或更新键值对,以及`store`方法将更改保存回文件。 ```java public static void writeProperties(String filePath, String parameterName, String parameterValue) { ...

    properties文件国际化插件

    `properties`文件是一种键值对的配置文件,它允许我们将不同语言的文本资源存储在独立的文件中,然后在运行时根据用户的选择动态加载相应的语言资源。然而,手动管理和维护这些文件可能会变得繁琐。为了简化这一过程...

    jquery-i18n-properties-1.0.9.js

    这个库基于jQuery框架,利用.properties文件格式存储不同语言的文本资源,使得内容可以根据用户的地区设置动态切换。 jQuery i18n Properties 的核心功能在于其对.properties文件的处理。这些文件是一种常用的Java...

    spring读取properties

    - **动态更新**:虽然Properties文件在应用启动时加载,但可以通过监听机制实现在运行时的动态更新。 ### 总结 Spring框架提供了强大且灵活的机制来处理Properties文件的读取和注入,这对于构建可配置性强、易于...

    Properties插件文件

    - **变量引用**:在Properties文件中可以使用`${}`引用其他系统属性或环境变量,以便于动态配置。 - **注释处理**:虽然Properties文件不强制要求注释,但在大型项目中,为键和值添加注释有助于理解文件内容。 - **...

    ApplicationResources.properties

    在`LoginApp`这样的项目中,它为登录界面的文本提供了一种动态管理和更新的机制,极大地提高了代码的可复用性和可维护性。理解和熟练运用这类资源文件,对于提升Java开发效率和项目质量具有重要意义。

    properties文件修改

    6. **资源绑定**:在Spring框架中,可以使用`@Value`注解将`.properties`文件中的属性值注入到Java bean的字段或方法中,实现配置的动态绑定。 7. **国际化(i18n)**:`.properties`文件也常用于实现应用的多语言...

    jquery.i18n.properties.zip

    5. **动态切换语言**:为了实现语言切换功能,你可以提供一个下拉菜单或其他控件,让用户选择所需的语言。在选择语言后,更新`language`参数并重新加载资源文件: ```javascript function changeLanguage(lang) { ...

    properties editor

    - **配置管理**:应用的配置参数,如数据库连接信息、服务器端口等,通常存储在.properties文件中,便于管理和更新。 - **调试辅助**:通过Properties Editor,开发者能更高效地调试和调整这些配置,无需每次修改...

    Java读取.properties文件

    开发者可以使用`Properties`类提供的方法来动态更新和保存配置,以适应不同的运行环境。 总结一下,Java中读取`.properties`文件涉及的关键知识点包括: 1. `.properties`文件的格式和结构。 2. `java.util....

    (转)java读取properties文件

    在Java编程中,读取`properties`文件是一个常见的任务,这些文件通常用于存储应用程序的配置信息,如数据库连接字符串、...在实际开发中,根据项目需求,还可以实现更多的功能,如动态更新配置、支持不同环境的配置等。

    jquery.i18n.properties.rar

    此外,jquery.i18n.properties插件还支持动态改变当前语言环境,只需重新调用`$.i18n.properties`并传入新的语言代码即可。这使得在用户更改语言设置时,无需刷新页面就能实时更新内容。 在实际项目中,前端开发者...

    jquery.i18n.properties-min-1.0.9

    只需重新调用`.i18n.properties`并传入新的语言标识,即可实时更新页面上的文本。 7. **优化与性能** 考虑到前端性能,可以将`.properties`文件转换成JSON格式,或者利用服务端缓存和CDN加速文件的加载。此外,...

    jquery-i18n-properties-master.zip

    开发者可以在HTML或JavaScript中引用这些文本,实现动态更新。 4. **语言切换**:当用户需要切换语言时,可以通过调用插件提供的方法,重新加载对应的.properties文件,并更新页面上的文本。 5. **国际化日期和...

Global site tag (gtag.js) - Google Analytics