Java知識(shí)點(diǎn)總結(jié)業(yè)務(wù)場景篇16-20

十六苍狰、FreeMarker描述

FreeMarker是一個(gè)用Java語言編寫的模板引擎,它是基于模板來生成文本輸出的通用工具烘绽。Freemarker可以生成HTML淋昭, XML,JSP或Java等多種文本輸出诀姚。

工作原理:定義模板文件响牛,嵌入數(shù)據(jù)源,通過模板顯示準(zhǔn)備的數(shù)據(jù)

(數(shù)據(jù) + 模板 = 輸出)

我們?cè)谑褂媚0逯邪l(fā)現(xiàn)freemarker具有許多優(yōu)點(diǎn)赫段,它徹底的分離表現(xiàn)層和業(yè)務(wù)邏輯呀打,模板只負(fù)責(zé)數(shù)據(jù)在頁面中的表現(xiàn),不涉及任何的邏輯代碼糯笙,所以使得開發(fā)過程中的人員分工更加明確贬丛,作為界面開發(fā)人員,只需專心創(chuàng)建HTML文件给涕、圖像以及Web頁面的其他可視化方面豺憔,不用理會(huì)數(shù)據(jù)额获;而程序開發(fā)人員則專注于系統(tǒng)實(shí)現(xiàn),負(fù)責(zé)為頁面準(zhǔn)備要顯示的數(shù)據(jù)恭应。

如果使用jsp來展示抄邀,開發(fā)階段進(jìn)行功能調(diào)適時(shí),需要頻繁的修改JSP昼榛,每次修改都要編譯和轉(zhuǎn)換境肾,浪費(fèi)了大量時(shí)間,F(xiàn)reeMarker模板技術(shù)不存在編譯和轉(zhuǎn)換的問題胆屿,在開發(fā)過程中奥喻,我們?cè)诓槐卦诘却缑嬖O(shè)計(jì)開發(fā)人員完成頁面原型后再來開發(fā)程序。由此使用freemarker還可以大大提高開發(fā)效率非迹。

十七环鲤、webService描述

(主動(dòng)說)

webservice是SOA(面向服務(wù)編程)的一種實(shí)現(xiàn),

主要是用來實(shí)現(xiàn)異構(gòu)平臺(tái)通信也就

是不同平臺(tái)不同項(xiàng)目之間的數(shù)據(jù)傳輸憎兽,從而避免了信息孤島的問題冷离,

它之所以能夠

進(jìn)行異構(gòu)平臺(tái)通信是因?yàn)樗峭耆趚ml的,

所以說唇兑,webService是跨平臺(tái)酒朵,

跨語言,跨框架的扎附,在java中通常有三種技術(shù)框架分別是xfire,cxf,axis2蔫耽。

我們?yōu)榱吮WC

webservice的安全性,采用了基于

WS-Security標(biāo)準(zhǔn)的安全驗(yàn)證(使用回調(diào)函數(shù))留夜。

(沒必要主動(dòng)說)

webservice的三要素分別是:

wsdl(webservice description language)

用來描述發(fā)布的接口(服務(wù))

soap(simple object access protocol)

是xml和http的結(jié)合匙铡,是webservice數(shù)據(jù)通信的協(xié)議

uddi 用來管理,查詢webService的服務(wù)

(沒必要主動(dòng)說)

webservice的具體三種實(shí)現(xiàn)方式(框架)或者三種實(shí)現(xiàn)框架的區(qū)別

1. Axis2:可以用多種語言開發(fā)碍粥,

是一個(gè)重量級(jí)框架鳖眼,功能非常強(qiáng)大,

但是它的性能比較低嚼摩。

2. Xfire:它相比Axis2來說是一個(gè)輕量級(jí)框架钦讳,

它的性能要比Axis2高。

3. cxf:是Xfire的升級(jí)版枕面,就好比是愿卒,

struts2是webwork的升級(jí),

然后cxf和spring集成起來非常方便潮秘,簡易琼开,

性能方面也要比Xfire高。

【注】jdk6 自帶的webservice jws

(主動(dòng)說)

業(yè)務(wù)場景

我在以前做項(xiàng)目的時(shí)候枕荞,其中遇到一個(gè)功能柜候,

需要進(jìn)行兩個(gè)項(xiàng)目之間的數(shù)據(jù)的傳輸搞动,

項(xiàng)目經(jīng)理讓我去完成這個(gè)任務(wù),我根據(jù)以往的項(xiàng)目經(jīng)驗(yàn)渣刷,

想到兩種解決方案鹦肿,第一種

就是開放另外一個(gè)項(xiàng)目的數(shù)據(jù)庫的權(quán)限給我,

然后我直接通過訪問另外一個(gè)項(xiàng)目的數(shù)據(jù)

庫辅柴,來得到需要的信息狮惜,但后來我分析了下,覺的這種方式不安全碌识,

而且因?yàn)楫?dāng)時(shí)

這個(gè)項(xiàng)目是另外一家公司負(fù)責(zé)在做,所以數(shù)據(jù)庫里面的表結(jié)構(gòu)虱而,

以及以后牽涉

到的責(zé)任問題都很多筏餐,所以我就采用了第二種方案,

即通過webservices的方式牡拇,進(jìn)行

異構(gòu)系統(tǒng)之間數(shù)據(jù)信息的傳遞魁瞪,webservices的具體實(shí)現(xiàn),

有xfire,cxf,axis2,

我根據(jù)以往的項(xiàng)目經(jīng)驗(yàn)惠呼,了解到cxf是xfire的升級(jí)版本导俘,適用于java語言,

xfire/cxf 性能比axis2要高剔蹋,并且和spring整合起來也比較方便旅薄,

而axis2支持更多的語言,

性能相對(duì)于cxf要低泣崩,通過上面分析少梁,

結(jié)合我們目前的兩個(gè)項(xiàng)目都是基于java

語言的,所以我采用cxf這種方式實(shí)現(xiàn)了兩個(gè)項(xiàng)目之間數(shù)據(jù)的傳遞矫付,

我們?yōu)榱吮WC

webservice的安全性我們采用了基于

WS-Security標(biāo)準(zhǔn)的安全驗(yàn)證(使用CXF回調(diào)函數(shù))凯沪。

(沒必要主動(dòng)說)

webservice服務(wù)端配置流程

首先在web.xml中引入cxfServlet核心類,

指定對(duì)以/cxf開頭的url路徑提供webservice服務(wù)买优,

之后我們?cè)谝l(fā)布成webservice接口上添加@Webservice 注解妨马,

而且還要在實(shí)現(xiàn)類上添加同樣的webservice注解并且要說明實(shí)現(xiàn)了哪個(gè)接口,

之后在spring-webservice.xml中發(fā)布webservice服務(wù)杀赢,

通過jaxws:endpoint這個(gè)標(biāo)簽烘跺,

并且在標(biāo)簽配置implementor和address來表明實(shí)現(xiàn)服務(wù)的類,

以及發(fā)布的地址葵陵,

最后在瀏覽器中輸入相關(guān)的webservice地址?wsdl來驗(yàn)證服務(wù)是否發(fā)布成功液荸。

(沒必要主動(dòng)說)

webservice客戶端的配置

首先通過wsdl2java根據(jù)發(fā)布的webservice服務(wù)端地址的wsdl

生成客戶端調(diào)用的中間橋梁java類,

將生成的java類拷貝到客戶端項(xiàng)目中脱篙,

配置spring-client.xml文件娇钱,

通過jaxws:client定義一個(gè)bean,

并通過address屬性指明要訪問的webservice的服務(wù)地址伤柄,

通過serviceClass指明充當(dāng)中間橋梁的服務(wù)類,之后獲取該bean,

就可以通過它來訪問發(fā)布的webservice接口中的方法文搂。

十八适刀、oracle索引概述

索引呢 是與表相關(guān)的一個(gè)可選結(jié)構(gòu),可以提高sql語句的檢索效率煤蹭,相當(dāng)于我們的字典目錄 笔喉,可以快速進(jìn)行定位 ,所以可以減少磁盤I/O, 但是因?yàn)樗饕谖锢砼c邏輯上都是獨(dú)立于表的數(shù)據(jù) 它會(huì)占用一定的物理空間(額外磁盤空間) 所以并不是索引越多越好,而我們應(yīng)該根據(jù)業(yè)務(wù)需求去創(chuàng)建索引,而且進(jìn)行增刪改操作時(shí) oracle又要自動(dòng)維護(hù)索引 所以在一定程度上也降低了維護(hù)速度硝皂,而且我們?cè)趧?chuàng)建索引和維護(hù)索引要耗費(fèi)時(shí)間常挚,這種時(shí)間隨著數(shù)據(jù)量的增加而增加,我們一般創(chuàng)建索引呢 是這樣創(chuàng)建的 create index 索引名 on 表名(字段)稽物,索引又分為普通索引 唯一索引(unique) 單個(gè)索引 復(fù)合索引(又叫組合索引奄毡,在索引建立語句中同時(shí)可包含多個(gè)字段名),順序索引贝或,散列索引,位圖索引吼过。

十九、oracle存儲(chǔ)過程

存儲(chǔ)過程就是封裝一些sql的集合咪奖,也就是一條條的sql語句盗忱,過程的優(yōu)點(diǎn)就是簡化了sql命令加上它是預(yù)編譯的,所以它的執(zhí)行效率和性能較高羊赵,再者趟佃,如果不調(diào)用過程的話就要和數(shù)據(jù)庫發(fā)生多次交互,調(diào)用過程只需傳一個(gè)命令所有的那些執(zhí)行邏輯都在數(shù)據(jù)庫端執(zhí)行慷垮,所以說它降低了網(wǎng)絡(luò)的通信量揖闸,其次,存儲(chǔ)過程大大提高了安全性料身,這就是優(yōu)點(diǎn)

缺點(diǎn)呢汤纸,就是不同的數(shù)據(jù)庫對(duì)過程支持的關(guān)鍵字支持的關(guān)鍵字都是不一樣的,所以它的移植性是非常差的芹血,再者贮泞,它的維護(hù)性難度也比較大,因?yàn)樗鼪]有專業(yè)的調(diào)試和維護(hù)工具幔烛,所以說它維護(hù)起來比較麻煩啃擦,這就是存儲(chǔ)過程的基本概述.

二十、Junit 業(yè)務(wù)場景

在我們開發(fā)項(xiàng)目的時(shí)候?yàn)榱颂岣叽a的性能和保證邏輯正確性饿悬,在我們編寫代碼后往往都要進(jìn)行單元測試令蛉,來驗(yàn)證代碼,當(dāng)時(shí)我們公司開發(fā)人員全部使用的main方法來進(jìn)行驗(yàn)證,但是使用mian的最大缺點(diǎn)就是不能將多個(gè)類同時(shí)進(jìn)行驗(yàn)證珠叔,驗(yàn)證的結(jié)果不直觀蝎宇,測試復(fù)雜(每個(gè)類都要寫main方法,單個(gè)運(yùn)行)祷安,一定程度上浪費(fèi)時(shí)間姥芥,所有我和項(xiàng)目經(jīng)理提議使用專業(yè)測試工具Junit來進(jìn)行測試,因?yàn)镴unit是一個(gè)Java語言的單元測試框架 汇鞭,測試簡單凉唐,不僅可以提供工作效率和代碼的質(zhì)量,也提高團(tuán)隊(duì)的合作能力霍骄,我提議后我們進(jìn)行了Junit的培訓(xùn)使用Junit4加注解的方式來測試台囱。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市读整,隨后出現(xiàn)的幾起案子玄坦,更是在濱河造成了極大的恐慌,老刑警劉巖绘沉,帶你破解...
    沈念sama閱讀 212,816評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異豺总,居然都是意外死亡车伞,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門喻喳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來另玖,“玉大人,你說我怎么就攤上這事表伦∏ィ” “怎么了?”我有些...
    開封第一講書人閱讀 158,300評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵蹦哼,是天一觀的道長鳄哭。 經(jīng)常有香客問我,道長纲熏,這世上最難降的妖魔是什么妆丘? 我笑而不...
    開封第一講書人閱讀 56,780評(píng)論 1 285
  • 正文 為了忘掉前任,我火速辦了婚禮局劲,結(jié)果婚禮上勺拣,老公的妹妹穿的比我還像新娘。我一直安慰自己鱼填,他們只是感情好药有,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,890評(píng)論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著苹丸,像睡著了一般愤惰。 火紅的嫁衣襯著肌膚如雪苇经。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,084評(píng)論 1 291
  • 那天羊苟,我揣著相機(jī)與錄音塑陵,去河邊找鬼。 笑死蜡励,一個(gè)胖子當(dāng)著我的面吹牛令花,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播凉倚,決...
    沈念sama閱讀 39,151評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼兼都,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了稽寒?” 一聲冷哼從身側(cè)響起扮碧,我...
    開封第一講書人閱讀 37,912評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎杏糙,沒想到半個(gè)月后慎王,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,355評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡宏侍,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,666評(píng)論 2 327
  • 正文 我和宋清朗相戀三年赖淤,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片谅河。...
    茶點(diǎn)故事閱讀 38,809評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡咱旱,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出绷耍,到底是詐尸還是另有隱情吐限,我是刑警寧澤,帶...
    沈念sama閱讀 34,504評(píng)論 4 334
  • 正文 年R本政府宣布褂始,位于F島的核電站诸典,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏崎苗。R本人自食惡果不足惜搂赋,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,150評(píng)論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望益缠。 院中可真熱鬧脑奠,春花似錦、人聲如沸幅慌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至齿诞,卻和暖如春酸休,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背祷杈。 一陣腳步聲響...
    開封第一講書人閱讀 32,121評(píng)論 1 267
  • 我被黑心中介騙來泰國打工斑司, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人但汞。 一個(gè)月前我還...
    沈念sama閱讀 46,628評(píng)論 2 362
  • 正文 我出身青樓宿刮,卻偏偏與公主長得像,于是被迫代替她去往敵國和親私蕾。 傳聞我的和親對(duì)象是個(gè)殘疾皇子僵缺,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,724評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容