无线&移动互联网技术研发

换位思考·····
posts - 19, comments - 53, trackbacks - 0, articles - 283
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理
jdom xpath
今天的空,回味一下勇哥的视频,敲了一段他的程序,感觉整个思想还是不错的。利用Xpath,虽然我一直在用dom4j,多少对jdom还是挺关注的。

PS:2009-8-8 17:24:15
之前这个测试程序还一直会有问题,
后来解决了,问题就是我没用到最新JDOM包,这个问题,总是会让人很郁闷。

<?xml version="1.0" encoding="UTF-8"?>
<sys-configure>
    
<jdbc-info>
        
<driver-class-name>net.sourceforge.jtds.jdbc.Driver</driver-class-name>
        
<url>jdbc:jtds:sqlserver://121.14.110.49:1433/wubai_wapcp</url>
        
<username>wap</username>
        
<password>esunxyz500wan!^wap</password>
    
</jdbc-info>
    <!--N多的bean-->
    
<beans>
        
<bean id="com.Gavin.jdomXpath.Test1" class="com.Gavin.jdomXpath.Test1"></bean>
        
<bean id="com.Gavin.jdomXpath.Test2" class="com.Gavin.jdomXpath.Test2"></bean>
        
<bean id="com.Gavin.jdomXpath.Test3" class="com.Gavin.jdomXpath.Test3"></bean>
        
<bean id="com.Gavin.jdomXpath.Test4" class="com.Gavin.jdomXpath.Test4"></bean>
        
<bean id="com.Gavin.jdomXpath.Test5" class="com.Gavin.jdomXpath.Test5"></bean>
    
</beans>
</sys-configure>

package com.Gavin.jdomXpath;

import java.io.IOException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import org.apache.log4j.Logger;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.jdom.xpath.XPath;


public class GlobalConfigure {

    
private static Logger logger = Logger.getLogger(GlobalConfigure.class);
    
    
private static GlobalConfigure instance = new GlobalConfigure();
    
    
private JdbcInfo jdbcInfo = new JdbcInfo();
    
    
private Map<String, Object> beanMap = new HashMap<String, Object>();
    
    
private static final String CONFIGE_FILE_NAME = "global_configure.xml";
    
    
private Element rootElt;
    
    
public static GlobalConfigure getInstance() {
        
return instance;
    }

    
    
private GlobalConfigure() {
        SAXBuilder sb 
= new SAXBuilder();
        
try {
            Document doc 
= sb.build(Thread.currentThread().getContextClassLoader().getResourceAsStream(CONFIGE_FILE_NAME));
            
this.rootElt = doc.getRootElement();
            initJdbcInfo();

            initBeans();
        }
 catch (JDOMException e) {
            e.printStackTrace();
        }
 catch (IOException e) {
            e.printStackTrace();
        }

    }

    
    
public JdbcInfo getJdbcInfo() {
        
return jdbcInfo;
    }

    
    
public Object getBean(Class c) {
        
return beanMap.get(c.getName());
    }

    
    
private void initJdbcInfo() {
        
try {
            Element driverClassNameElt 
= (Element)XPath.selectSingleNode(rootElt, "//sys-configure/jdbc-info/driver-class-name");
            Element urlElt 
= (Element)XPath.selectSingleNode(rootElt, "//sys-configure/jdbc-info/url");
            Element usernameElt 
= (Element)XPath.selectSingleNode(rootElt, "//sys-configure/jdbc-info/username");
            Element passwordElt 
= (Element)XPath.selectSingleNode(rootElt, "//sys-configure/jdbc-info/password");
            logger.debug(urlElt.getText());
            jdbcInfo.setDriverClassName(driverClassNameElt.getText());
            jdbcInfo.setUrl(urlElt.getText());
            jdbcInfo.setUsername(usernameElt.getText());
            jdbcInfo.setPassword(passwordElt.getText());
        }
 catch (JDOMException e) {
            e.printStackTrace();
        }

    }

    
    
private void initBeans() {
        
try {
            List
<Element> beanList = XPath.selectNodes(rootElt, "//sys-configure/beans/bean");
            
for(Iterator<Element> it = beanList.iterator(); it.hasNext();) {
                Element beanElt 
= (Element)it.next();
                String id 
= beanElt.getAttributeValue("id");
                String className 
= beanElt.getAttributeValue("class");
                
                Object obj 
= Class.forName(className).newInstance();
                beanMap.put(id, obj);
            }
            
        }
 catch (JDOMException e) {
            e.printStackTrace();
        }
 catch (InstantiationException e) {
            e.printStackTrace();
        }
 catch (IllegalAccessException e) {
            e.printStackTrace();
        }
 catch (ClassNotFoundException e) {
            e.printStackTrace();
        }

    }

    
public static void main(String[] args) {
        
        GlobalConfigure.getInstance().getJdbcInfo().toString();
        
//        Test1 t = (Test1)GlobalConfigure.getInstance().getBean(Test1.class);
        
        System.out.println(
"uuu");

    }

}



package com.Gavin.jdomXpath;

public class JdbcInfo {
    
private String driverClassName;
    
private String url;
    
private String username;
    
private String password;
    
    
public String getDriverClassName() {
        
return driverClassName;
    }

    
public void setDriverClassName(String driverClassName) {
        
this.driverClassName = driverClassName;
    }

    
public String getUrl() {
        
return url;
    }

    
public void setUrl(String url) {
        
this.url = url;
    }

    
public String getUsername() {
        
return username;
    }

    
public void setUsername(String username) {
        
this.username = username;
    }

    
public String getPassword() {
        
return password;
    }

    
public void setPassword(String password) {
        
this.password = password;
    }

    
public String toString() {
        
return "JdbcInfo {driver-class-name:" + this.driverClassName
            
+ "url:" + this.url
            
+ "username:" + this.username
            
+ "password:" + this.password + "}";
    }

}


只有注册用户登录后才能发表评论。


网站导航: