`
eagle0824
  • 浏览: 231379 次
  • 性别: Icon_minigender_1
  • 来自: 镇江
社区版块
存档分类
最新评论

单例模式(兼谈Java读取xml配置文件)

    博客分类:
  • J2EE
阅读更多


配置文件如下:
<?xml version="1.0" encoding="utf-8" ?> 
<config>
	<db-config>
		<db-driver>com.microsoft.jdbc.sqlserver.SQLServerDriver</db-driver>
		<url>jdbc:microsoft:sqlserver://192.168.1.200:1433;databaseName=user_data</url>
		<user-name>sa</user-name>
		<password>master</password>
	</db-config>
</config>


读取配置文件xml:
package com.bjpowernode.drp.util;

import java.io.InputStream;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
/**
 *采用单例模式来解析sys-config.xml文件
 * @author jsly
 *
 */
public class XMLConfigReader {
	
	/**
	 * 饿汉模式
	 * @param args
	 */
	/*private static XMLConfigReader instance = new XMLConfigReader();
	
	private XMLConfigReader(){	
	}
	public static XMLConfigReader getInstance(){
		return instance;
	}*/
	
	/**
	 * 懒汉模式
	 */
	
	private static XMLConfigReader instance = null;
	
	private XMLConfigReader(){
		SAXReader reader = new SAXReader();
		InputStream in = Thread.currentThread().getContextClassLoader().getResourceAsStream("sys-config.xml");
		try {
			Document document=reader.read(in);
			Element driverElt = (Element)document.selectObject("/config/db-info/driver-name");
			Element urlElt = (Element)document.selectObject("/config/db-info/url");
			Element userNameElt = (Element)document.selectObject("/config/db-info/user-name");
			Element passwordElt = (Element)document.selectObject("/config/db-info/password");
			
			
			String driver = driverElt.getStringValue();
			String url = urlElt.getStringValue();
			String username = userNameElt.getStringValue();
			String password = passwordElt.getStringValue();
			System.out.println(driver);
			
		} catch (DocumentException e) {
			e.printStackTrace();
		}
	}
	
	public static synchronized XMLConfigReader getInstance(){
		if(instance==null){
			instance = new XMLConfigReader();
		}
		return instance;
	}
	
	public static void main(String args[]){
		XMLConfigReader reader = XMLConfigReader.getInstance();
	}
}

分享到:
评论

相关推荐

    单例模式_命令模式

    在游戏初始化时,`GameManager`会读取配置文件(可能是XML或JSON格式),通过反射动态创建并实例化相应的命令类(如`MoveCommand`、`AttackCommand`)。这些命令类实现了一致的接口,使得`GameManager`可以统一调用...

    xml.rar_XML java_java xml_xml_xml 数据库

    在Java编程中,XML与Java的结合使用是相当常见的,尤其是在数据交换、配置文件、以及与数据库交互等方面。这个"xml.rar"压缩包显然包含了一些关于XML在Java环境中的应用实例。 首先,从标题和描述中我们可以推测,...

    单例模式演示PPT和实例

    - **配置信息类**:如XML配置文件的解析,只创建一个解析器实例来读取和管理配置信息。 - **数据库连接池控制类**:管理数据库连接,通过单例确保所有请求都使用同一组连接,提高性能并减少资源消耗。 - **Web应用中...

    java使用dom4j解析xml配置文件实现抽象工厂反射示例

    在本示例中,DOM4J被用来读取XML配置文件,实现一个抽象工厂模式和反射机制的结合。这种方式使得代码更具灵活性和可扩展性,因为配置信息可以在运行时动态加载,而不需要对代码进行硬编码。 首先,我们来看配置文件...

    xml与数据库中数据的导入导出

    它在IT领域中扮演着重要角色,特别是在数据交换、配置文件和数据存储方面。本资源包含了一个Java与MySQL数据库结合的示例,展示了如何实现XML与数据库之间的数据导入导出功能。以下将详细阐述这一过程涉及的关键技术...

    如何用Document解析XML文件

    随着技术的发展,XML因其良好的结构化特性,被广泛应用于配置文件、数据交换等领域。在Java中,使用`Document`对象解析XML文件是一种常见且有效的方式。本文将详细介绍如何利用Java标准库中的`Document`及相关类来...

    dom4j学生考试系统代码 java源代码 xml存储数据

    7. **文件操作**:系统需要读取和写入XML文件,因此会涉及到Java的I/O流操作,包括文件的打开、读取、写入和关闭。 通过学习和理解这个项目,开发者不仅可以提升DOM4J和Java编程的技能,还能了解如何在实际项目中...

    在非spring注解类中使用spring容器中的bean_普通类中使用yml配置文件中的配置信息

    1. 通过`ClassPathXmlApplicationContext`或`FileSystemXmlApplicationContext`加载XML配置文件创建上下文。在Spring Boot应用中,通常使用`AnnotationConfigApplicationContext`加载基于注解的配置。 2. 如果你的类...

    redis的配置文件与调用的工具类

    在XML配置文件中,我们通常不会直接包含Redis的配置,而是通过Spring框架或者其他依赖注入框架来管理Redis的连接信息。 例如,如果你使用Spring作为应用框架,可以在`applicationContext.xml`或对应的配置文件中...

    一个基于Java快速开发框架,支持mysql、xml、json等的基本操作。.zip

    Spring框架的Bean配置就是一个典型的XML应用,通过XML配置文件可以声明依赖关系,控制组件的生命周期。 JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,因其易读易写的特点,在Web服务和前端...

    spring中的BeanFactory解析xml文件

    当我们谈论“Spring中的BeanFactory解析XML文件”时,我们实际上是在讨论如何通过XML配置文件来定义、创建和管理bean。这篇文章将深入探讨BeanFactory的工作原理,以及XML配置文件在其中的作用。 首先,BeanFactory...

    spring配置文件----注解配置

    5. `@Configuration` 和 `@Bean`: 这两个注解组合使用可以创建一个基于Java的配置类,替代XML配置文件。`@Configuration`表示当前类是一个配置类,而`@Bean`则标记方法,该方法的返回值会被注册为一个Spring bean。 ...

    手写SpringIoc的XML实现方式

    首先,我们需要创建一个核心容器类,类似于`ClassPathXmlApplicationContext`,这个类将负责加载XML配置文件并解析其中的bean定义。这个类通常会有一个初始化方法,接受XML配置文件的路径作为参数,然后解析文件并...

    非常好的关于xml解析的东西

    通过一个实际的例子展示了如何使用SAX解析器来读取XML文件,并利用单例模式优化读取过程。这种方法适用于需要高效处理大量数据或实时流数据的应用场景。 此外,我们还探讨了如何使用单例模式来管理解析过程,以及...

    实验二_航天班161班_6130116093_黄丹_创建型设计模式1

    总的来说,实验二通过一系列的实践,让学生深入理解并应用创建型设计模式,掌握UML建模、XML文件操作、Java反射机制,以及抽象类与接口的区别和多态的运用。这些知识对于开发高质量、可扩展的软件系统至关重要。

    默认xmlIOC容器 demo-基于maven项目

    在这个demo中,我们首先会设置一个Maven项目结构,包括src/main/java目录用于存放Java源代码,src/main/resources存放资源配置文件,如XML配置文件,以及pom.xml来定义项目依赖。 XML配置文件是XML IOC容器的核心,...

    android 毕业设计,Xml解析和设计模式应用了高保真界面设计。

    `.classpath`和`.project`是Eclipse或IntelliJ IDEA等IDE的配置文件,用于识别项目类型和依赖。`bin`目录存放编译后的类文件和资源,`.settings`存储项目特定的IDE设置。`src`包含源代码,其中`main/java`存放Java...

Global site tag (gtag.js) - Google Analytics