無線&移動互聯網技術研發
換位思考·····
posts - 19, comments - 53, trackbacks - 0, articles - 283
BlogJava
::
首頁
::
新隨筆
::
聯系
::
聚合
::
管理
jdom XPath 解析配置文件(不錯的設計思想)
Posted on 2009-07-29 00:02
Gavin.lee
閱讀(616)
評論(0)
編輯
收藏
所屬分類:
xml doc 操作
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
+
"
}
"
;
}
}
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關文章:
獲取XML的編碼
Dom4j XPath 應用
Dom 生成xml --http://www.w3school.com.cn/xmldom/xmldom_reference.asp (dom手冊)
jdom 修改 xml
jdom XPath 解析配置文件(不錯的設計思想)
dom4j 修改 xml
jdom 解析 xml (csdn)
JDOM 處理 XML (生成 + 解析 && 理論 + 實例)
Dom 解析xml
xml 做配置文件的讀取
Powered by:
BlogJava
Copyright © Gavin.lee
日歷
<
2025年5月
>
日
一
二
三
四
五
六
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
常用鏈接
我的隨筆
我的文章
我的評論
我的參與
最新評論
留言簿
(13)
給我留言
查看公開留言
查看私人留言
我參與的團隊
深圳Java俱樂部(0/0)
隨筆檔案
(19)
2011年6月 (1)
2011年5月 (1)
2010年12月 (1)
2010年5月 (1)
2010年1月 (1)
2009年8月 (2)
2009年6月 (6)
2009年5月 (6)
文章分類
(277)
Date tools(4)
FreeMarker (7)
java design pattern(3)
java SE & EE(60)
JDBC(14)
jsp 【勿忘】(5)
Linux command(7)
Linux shell 入門(11)
Linux 日常應用(5)
Log && File Operate(8)
MemCache (5)
SiteMesh 頁面裝飾組件(2)
SSH2 --Hibernate(6)
SSH2 --Spring(9)
SSH2 --Struts2(21)
Subversion(Svn)(5)
wap 積累(8)
web 積累(前端 + 后臺)(33)
xml doc 操作(12)
多線程(6)
性能分析(7)
類的設計(4)
經典語錄(3)
經驗&常識(32)
文章檔案
(282)
2011年7月 (1)
2011年6月 (1)
2011年5月 (1)
2011年4月 (1)
2011年3月 (1)
2011年2月 (1)
2010年12月 (6)
2010年11月 (8)
2010年10月 (1)
2010年9月 (6)
2010年6月 (7)
2010年5月 (22)
2010年4月 (1)
2010年3月 (14)
2010年2月 (2)
2010年1月 (10)
2009年12月 (32)
2009年11月 (30)
2009年10月 (2)
2009年9月 (5)
2009年8月 (13)
2009年7月 (41)
2009年6月 (43)
2009年5月 (33)
收藏夾
(7)
java 基礎類(1)
JSP(1)
server(2)
WEB(1)
數據庫
設計模式(2)
友情鏈接
blogjava中的強人
chinaunix 社區
java 世紀網
java 基礎輔導文章
javaeye 藍色的風
SQL語句教程
與java共舞
中國協議分析網
中文java技術網
多線程
待看的文章
感興趣的 csdn
我的漫漫程序之旅
新起點,新開始
夢幻之旅
趙學慶 的博客
超級多文章的牛人
隔葉黃鶯 The Blog of Unmi
高手論壇
最新隨筆
1.?Mysql:1292 truncated incorrect double value -- concat 函數用法
2.?Mysql 插入當前時間【摘】
3.?學計算機的你傷不起啊【雷人】
4.?ucweb和opera工作原理的差別【摘】
5.?清朝皇帝列表
6.?設置IE查看源文件時默認打開的編輯器【轉】
7.?subclipse svn修改用戶名密碼問題【摘】
8.?hibernate.dialect (Hibernate SQL方言)-備用
9.?Tomcat JspFactory的異常的原因及解決辦法
10.?關于MyEclipse中的Tomcat啟動的問題 【Tomcat JDK name error】
11.?win-xp 自動關機腳本 【古老的記憶】
12.?Office 2007 Word 打開故障 - "The setup controller has encountered a problem during instll"
13.?木匠家的門
14.?MyEclipse 后臺進程一直運行"computing additional info"的解決辦法
15.?MyEclipse 一直 initializing java tooling······
16.?MyEclipse 代碼提示(“@”自動提示)
17.?org.hibernate.hql.ast.QuerySyntaxException(我的流水賬)
18.?org.hibernate.hql.antlr.HqlBaseParser.recover(NoSuchMethodError)
19.?SVN:cannot map the project with svn provider解決辦法
20.?WAP1.0 前端開發經驗(原創-JSP)
21.?Notepad++提示"Load langs.xml failed!"的解決方法
22.?讓你的PC也能訪問手機騰訊網
23.?【轉】Proxool 連接池的配置-hibernate篇
24.?Hibernate 主鍵生成策略
25.?Quartz cron 表達式格式的含義
26.?OGNL功用!!!
27.?使用Appfuse快速構建J2EE應用
28.?大型門戶網站的十四大技術!!!
29.?Urlrewrite與Struts2.x結合使用
30.?HttpWatch的檢測指示說明:Blocked、Connect、Send、Wait、Receive
31.?解讀JAR,SIS,SISX格式區別!!!
32.?commons-lang-2.4.jar 包常用方法集錦
33.?Struts2中解決一個表單多種提交
34.?JSTL(Java Standard Tag Library) 標記庫的使用
35.?Struts2驗證錯誤信息的兩個經典方法-addFieldError&addActionError
36.?Hibernate常見異常-無法轉換為內部表示
37.?Spring AOP詳細導讀-用多手段實例對比呈現AOP
38.?Struts2 Result-type(封裝Action層到View層的跳轉邏輯)
39.?在Struts2中以IOC和非IOC方式獲取session&request
40.?采用url鏈接形式提交action(非s:from方式提交)
搜索
積分與排名
積分 - 356391
排名 - 156
最新評論
1.?re: Struts2驗證錯誤信息的兩個經典方法-addFieldError&addActionError
S2C4
--asdad
2.?re: Struts2驗證錯誤信息的兩個經典方法-addFieldError&addActionError[未登錄]
asd
--as
3.?21232.2323
323432432
--馮海波
4.?re: SVN:cannot map the project with svn provider解決辦法[未登錄]
多謝!已經解決。
--will
5.?re: Struts2驗證錯誤信息的兩個經典方法-addFieldError&addActionError
44
--2
閱讀排行榜
1.?學計算機的你傷不起啊【雷人】(1020)
2.?看看這個笑話,你就知道干IT的不容易了!!(623)
3.?清朝皇帝列表(618)
4.? 每天讀一遍,不久你就會變! ---- 很好很強大(469)
5.?木匠家的門(423)
評論排行榜
1.?學計算機的你傷不起啊【雷人】(0)
2.?清朝皇帝列表(0)
3.?木匠家的門(0)
4.? 每天讀一遍,不久你就會變! ---- 很好很強大(0)
5.?我喜歡的語錄(0)
主站蜘蛛池模板:
亚洲AV本道一区二区三区四区
|
国产国产人免费人成免费视频
|
亚洲av纯肉无码精品动漫
|
亚洲AV中文无码乱人伦
|
成人性做爰aaa片免费看
|
久久亚洲精品专区蓝色区
|
亚洲成A∨人片天堂网无码
|
日本一道本不卡免费
|
国产成人精品日本亚洲网址
|
四虎免费久久影院
|
一区二区在线免费观看
|
老司机亚洲精品影院在线观看
|
亚洲国产精品久久久久网站
|
国产网站免费观看
|
国产人成免费视频网站
|
久久精品免费网站网
|
亚洲欧美日韩一区二区三区
|
人人狠狠综合久久亚洲88
|
韩国欧洲一级毛片免费
|
亚洲韩国精品无码一区二区三区
|
中文字幕免费不卡二区
|
国产亚洲综合久久
|
亚洲国产美女福利直播秀一区二区
|
亚洲AV中文无码乱人伦
|
成年男女男精品免费视频网站
|
鲁丝片一区二区三区免费
|
香蕉视频在线观看免费
|
亚洲精品国产精品国自产网站
|
国产成人精品日本亚洲
|
亚洲成人一区二区
|
日韩在线天堂免费观看
|
免费专区丝袜脚调教视频
|
国产成人精品免费视频大全
|
亚洲欧好州第一的日产suv
|
亚洲精品人成电影网
|
久久亚洲高清观看
|
在线亚洲精品自拍
|
亚洲国产成人爱av在线播放
|
免费人成视频在线
|
91香蕉成人免费网站
|
99热在线精品免费播放6
|