無(wú)為

          無(wú)為則可為,無(wú)為則至深!

            BlogJava :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
            190 Posts :: 291 Stories :: 258 Comments :: 0 Trackbacks

          公告

          與有奉獻(xiàn)精神和分享精神的人做朋友!

          Locations of visitors to this page
          Subscribe by Anothr

          搜索

          •  

          積分與排名

          • 積分 - 581780
          • 排名 - 83

          最新評(píng)論

          閱讀排行榜

          《Java.6.Platform.Revealed》? Apress 2006.Jul 出版,不得不佩服國(guó)外出版社的效率。在ROR步步進(jìn)逼,風(fēng)聲雨聲的時(shí)候,八卦一下Java 6有什么新功能對(duì)Java程序員還是很好的。此書易讀,代碼清晰,239頁(yè),大約幾個(gè)小時(shí)就能翻完。

          ?????? JDK6的升級(jí)大體可以分為幾大類:

          ?????? 一、JavaEE 5中新XML,WebService標(biāo)準(zhǔn)的JavaSE固化,如StAX、JAXB2、JSR181等。

          ?????? 二、JSR223 Script的引入,可在Java代碼中運(yùn)行Javascript, Ruby, Php,對(duì)開(kāi)發(fā)人員刺激較大。

          ????? ?三、JDBC 4,開(kāi)始直接支持輕度的ORM,對(duì)XML支持增強(qiáng),但其實(shí)要等各jdbc driver廠商的實(shí)現(xiàn)。

          ?????? 四、Compiler API及Pluggable Annocation,對(duì)IDE開(kāi)發(fā)廠商幫助較大?,比如即時(shí)編譯。
          ???????????????而Common Annotations對(duì)普通開(kāi)發(fā)人員意義更大一點(diǎn)。

          ?????? 五、每次升級(jí)必有的Swing、Collections、 IO 的小更新。?

          ??????JDK6 新特性很多文章都有提,還是實(shí)實(shí)在在的具體代碼更讓人放心。

          一、XML新標(biāo)準(zhǔn)

          JSR 105: XML Digital Signature
          JSR 173: Streaming API for XML
          JSR 222: JAXB 2.0

          1.StAX--Streaming API,一種在Dom,Sax之外號(hào)稱完美的XML處理方式

          大家都知道DOM雖好,但狂吃內(nèi)存。

          Sax并不把全部?jī)?nèi)容保存在自己的內(nèi)存里,而是由Sax框架不斷調(diào)用處理程序?qū)崿F(xiàn)的OnElementBegin()等函數(shù),由框架推送內(nèi)容,處理程序通過(guò)回調(diào)函數(shù)處理所有內(nèi)容,Sax將XML內(nèi)容全部推給處理程序后就下班休息。所以稱為推模式。

          而StAX既然被稱為拉模式,訪問(wèn)數(shù)據(jù)的方法其實(shí)與Sax差不多,但與只能被動(dòng)實(shí)現(xiàn)回調(diào)函數(shù)的不能進(jìn)行暫停和跳過(guò)等操控的Sax不同,StAX是主動(dòng)用Iterator API循環(huán)去讀取XML的,控制權(quán)完全在處理程序手中。

          XMLInputFactory?xmlif?=?XMLInputFactory.newInstance();
          XMLEventReader?xmler?
          =?xmlif.createXMLEventReader(new?FileReader("points.xml"));
          XMLEvent?
          event;
          while?(xmler.hasNext())?{
          ??
          event?=?xmler.nextEvent();
          ??
          if?(event.isStartElement())?{
          ????console.printf(
          "%s",?event.asStartElement().getName());
          ??}?
          else?if?(event.isCharacters())?{
          ????console.printf(
          "%s",?event.asCharacters().getData());
          ??}
          }

          ?

          2.JAXB2使用Annotation定義實(shí)現(xiàn) Java->xml 的生成
          ? 只要在POJO里聲明了@XmlRootElement,JAXB2就會(huì)自動(dòng)進(jìn)行綁定。其他標(biāo)簽還有一堆,大家自己看書的138頁(yè)。看sample比其他的binding方案清爽了不少。

          Pojo定義:

          @XmlRootElement
          private?static?class?Point?...{
          int?x;
          int?y;
          //getter?setter?about?x,y
          }

          生成XML的代碼:

          JAXBContext?context?=?JAXBContext.newInstance(Point.class);
          Marshaller?m?
          =?context.createMarshaller();
          Point?p?
          =?new?Point(3,?4);
          m.marshal(p,?System.out);

          輸出結(jié)果:

          <?xml?version="1.0"?encoding="UTF-8"?standalone="yes"?>
          <point>
          <x>3</x>
          <y>4</y>
          </point>

          ?XML Schema->Java Class

          一個(gè)叫xjc的自帶工具負(fù)責(zé)編譯,如xjc course.xsd。

          ?3.xml加密簽名包

          david.turing 會(huì)很關(guān)心,我一眼掃過(guò)去了,反正記得這功能已經(jīng)由JDK的javax.xml.crypto package提供就行了。



          凡是有該標(biāo)志的文章,都是該blog博主Caoer(草兒)原創(chuàng),凡是索引、收藏
          、轉(zhuǎn)載請(qǐng)注明來(lái)處和原文作者。非常感謝。

          posted on 2006-09-07 15:00 草兒 閱讀(264) 評(píng)論(0)  編輯  收藏 所屬分類: java
          主站蜘蛛池模板: 芦山县| 上虞市| 凤凰县| 二手房| 沾益县| 安国市| 红河县| 东城区| 广饶县| 潮州市| 华亭县| 大姚县| 牟定县| 信宜市| 陇川县| 阳春市| 荆门市| 自贡市| 柳州市| 洱源县| 大关县| 修武县| 本溪市| 三穗县| 恩施市| 拜泉县| 金堂县| 武城县| 油尖旺区| 台南县| 水富县| 新平| 盘山县| 祁阳县| 和平区| 长乐市| 鹰潭市| 杭州市| 平潭县| 卢湾区| 太和县|