`
rempolee
  • 浏览: 4345 次
  • 性别: Icon_minigender_1
  • 来自: 江苏
最近访客 更多访客>>
社区版块
存档分类
最新评论

java 通过配置文件获取对应的值

阅读更多
当我们有的时候觉得在java程序中添加参数值的时候觉得需要改变代码麻烦,如果你像尝试通过配置文件添加对应的值,而不用去改变*.java文件时,一个小程序。


直接看代码
<?xml version="1.0" encoding = "UTF-8" ?>
<listeners>
	<listener class="com.test.TestElement"></listener>
	
</listeners>


import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

public class Utils {
	private static List<Object> listeners = new ArrayList<Object>();

	static {
		SAXReader sax = new SAXReader();
		Document doc = null;
		try {
			doc = sax.read(Utils.class.getClassLoader()
					.getResourceAsStream("listeners.xml"));
			Element root = doc.getRootElement();
			List list = root.elements("listener");
			for (int i = 0; i < list.size(); i++) {
				Element element = (Element) list.get(i);
				String clazz = element.attributeValue("class");
				Object o = Class.forName(clazz).newInstance();
				listeners.add(o);
			}
		} catch (DocumentException e) {
			e.printStackTrace();
		} catch (InstantiationException e) {
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
	}
	
	public static List<Object>  getListeners() {
		return listeners;
	}
}


如果对应配置文件中还有别的属性的时候,可以参看下面的代码:

<beans>
	<bean id="a" class="com.A" />
	<bean id="b" class="com.B" >
		<property name="b_a" bean="a"/>
	</bean>
	
</beans>


import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;

public class READ{
	
	private Map<String , Object> beans = new HashMap<String, Object>();
	
	
	public ClassPathXmlApplicationContext() throws Exception {
		SAXBuilder sb=new SAXBuilder();
	    
	    Document doc=sb.build(this.getClass().getClassLoader().getResourceAsStream("beans.xml"));
	    Element root=doc.getRootElement(); 
	    List list=root.getChildren("bean");
	    for(int i=0;i<list.size();i++){
	       Element element=(Element)list.get(i);
	       String id=element.getAttributeValue("id");
	       String clazz=element.getAttributeValue("class");
	       Object o = Class.forName(clazz).newInstance();
	       beans.put(id, o);
	       
	       for(Element propertyElement : (List<Element>)element.getChildren("property")) {
	    	   String name = propertyElement.getAttributeValue("name");
	    	   String bean = propertyElement.getAttributeValue("bean");
	    	   Object beanObject = beans.get(bean);
	    	   
	    	   String methodName = "set" + name.substring(0, 1).toUpperCase() + name.substring(1);
	    	   
	    	   Method m = o.getClass().getMethod(methodName, beanObject.getClass().getInterfaces());
	    	   m.invoke(o, beanObject);
	       }
	    }  
	  
	}



	public Object getBean(String id) {
		return beans.get(id);
	}

}
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    Java加载配置文件工具类

    在Java编程中,加载配置文件是一项常见的任务,它允许程序在运行时动态获取或更改设置。这个"Java加载配置文件工具类"很可能是为了解决这个问题而创建的一个实用工具,帮助开发者更方便、高效地处理配置文件。配置...

    JAVA读取配置文件源码

    在Java编程中,读取配置文件是常见的任务,它允许我们分离程序的配置信息,如数据库连接字符串、API密钥等,与实际的代码逻辑。这样可以方便地更新和管理这些参数,而无需重新编译或部署应用程序。下面将详细解释...

    java 读取配置文件

    在Java编程中,读取配置文件是常见的任务,特别是在构建可扩展和可维护的应用程序时。配置文件通常用于存储应用程序的设置、连接信息或其他敏感数据,这样可以将这些信息与核心代码分离,便于管理和更新。本篇文章将...

    java读写properties配置文件

    如果需要读取配置文件中的所有键值对,可以使用`propertyNames`方法获取所有键名,并通过`getProperty`方法逐一读取每个键对应的值。 ```java public static void readProperties(String filePath) { ...

    java读取配置文件(axun)

    在Java编程中,读取配置文件是常见的任务,特别是在构建可扩展和可维护的应用程序时。配置文件通常用于存储应用程序的动态设置,如数据库连接字符串、API密钥、服务器地址等,这些信息需要在运行时根据环境进行调整...

    利用Java的Properties 类读取配置文件信息

    通过以上步骤,你可以使用Java的`Properties`类高效地读取、修改和保存配置文件,为你的应用程序提供灵活的配置管理。在实际项目中,你可能会将其封装到一个单独的类,如示例代码中的`PropertiesReader`,以提供更...

    ReadProperties读取java项目配置文件

    3. **读取配置属性**:加载完成后,我们可以通过键(key)来获取对应的值(value)。例如,如果我们有一个名为`db.url`的属性,我们可以这样读取: ```java String dbUrl = props.getProperty("db.url"); ``` 4. *...

    java读取properties配置文件

    通过以上内容,你应该能够理解并实现Java中读取`properties`配置文件的基本操作。在实际项目中,还可以结合Spring框架或者其他配置管理工具,如Apache Commons Configuration,进一步简化配置文件的管理和使用。

    java 静态代码块通过类加载器获取资源文件例子

    总之,通过Java的静态代码块和类加载器,我们可以有效地管理和加载资源文件,特别是属性配置文件,确保在程序启动时即完成初始化工作,提升应用性能。这种技术在大型复杂系统中尤其常见,因为它能够保证配置的正确性...

    Java串口通信配置文件(全).rar

    本文将详细介绍如何在Java中实现串口通信,并围绕"Java串口通信配置文件(全).rar"这个压缩包展开讨论。 在Java中进行串口通信,我们通常会使用第三方库,比如RXTX库。RXTX是一个开源的Java库,它为Java提供了直接...

    读取配置文件工具类.rar

    本压缩包包含两个工具类,分别用于读取`.yml`和`.properties`格式的配置文件,这两种格式都是Java开发中常见的配置文件类型。 首先,我们来看`.properties`配置文件。这种格式的文件历史较为悠久,它的语法简单,每...

    SpringBoot获取yml和properties配置文件的内容

    总的来说,Spring Boot通过`@ConfigurationProperties`和`@Component`注解使得从`properties`或`yml`配置文件中获取和使用配置变得非常简单。开发者只需创建一个Java类,声明属性,并让Spring Boot自动绑定配置,...

    java读取.properties配置文件的几种方法

    在这个例子中,我们首先创建一个`Properties`对象,然后通过`FileInputStream`打开配置文件,使用`load()`方法加载属性,最后用`getProperty()`获取指定键的值。 2. 使用`ResourceBundle`类 `ResourceBundle`类...

    java对properties配置文件的读和写

    1.1.4 遍历键值对并打印:通过`keySet()`方法获取所有键,然后使用`getProperty()`方法获取对应的值。 ```java Set&lt;Object&gt; keySet = properties.keySet(); for (Object object : keySet) { System.out.println...

    JAVA读取properties文件的值

    在Java编程中,`properties`文件是一种常用的配置文件格式,用于存储程序的配置信息,如数据库连接字符串、系统参数等。这些数据以键值对的形式存在,键与值之间用等号(=)或冒号(:)分隔。本篇文章将详细探讨如何...

    java的property配置文件的用法.txt

    2. **获取属性值**:`getProperty`方法用于根据键获取对应的值。 #### 四、写入与更新`.properties`文件 除了读取之外,还可以使用`Properties`类来修改或添加新的键值对到`.properties`文件中: ```java public ...

    Java读取含中文key的properties文件

    在Java编程中,Properties文件是用于存储配置信息的文本文件,通常包含键值对,其中键和值之间用等号(=)或冒号(:)分隔。当我们需要处理包含中文键的Properties文件时,可能会遇到编码问题,因为默认的ISO-8859-1...

    java 读取properties文件代码

    2. **获取键值对**:加载文件后,你可以通过键来获取对应的值。`getProperty()`方法用于检索Properties对象中指定键的值。 ```java String dbUrl = prop.getProperty("database.url"); String dbUser = prop....

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

    在Java开发中,配置文件管理是至关重要的,它允许我们分离程序的静态配置信息,使得配置更为灵活且易于维护。Apache Commons Configuration库提供了一个强大的工具集,用于处理各种类型的配置文件,包括properties和...

    SpringBoot-2.7.6读取配置文件的方式

    默认情况下,Spring Boot会根据`spring.profiles.active`属性来选择对应的配置文件。 ### 5. YAML配置 `application.yml`文件使用YAML格式,其语法更直观,层次结构清晰。例如: ```yaml server: port: 8080 ...

Global site tag (gtag.js) - Google Analytics