版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Java全棧式Web應(yīng)用開發(fā)框架LEAP的核心設(shè)計(jì)思想 | 品高云公開課 2016-07-19 云小編 懂企業(yè)的品高云 小編的話“品高云公開課”系列文章意在分享技術(shù)牛人的知識(shí)干貨,和大家一起交流學(xué)習(xí)云知識(shí),每期主題都不一樣喲!期待各位讀者在文后發(fā)表留言,來一場(chǎng)技術(shù)上的交流和思想上的碰撞!本期品高云公開課由彭鴻杰帶來“Java全棧式Web應(yīng)用開發(fā)框架LEAP的核心設(shè)計(jì)思想”的分享。分享嘉賓彭鴻杰目前就任品高云云應(yīng)用平臺(tái)部軟件工程師, 13年入職品高,專注Java應(yīng)用開發(fā)框架研發(fā)和品高云SSO產(chǎn)品研發(fā),目前主要負(fù)責(zé)Java開源應(yīng)用開發(fā)框架LEAP的核心代碼開發(fā)和品高云SSOV3產(chǎn)品研發(fā)。分享正文隨
2、著互聯(lián)網(wǎng)浪潮席卷我們生活的方方面面,企業(yè)應(yīng)用的業(yè)務(wù)中也越來越傾向互聯(lián)網(wǎng)思維,企業(yè)應(yīng)用和互聯(lián)網(wǎng)的融合是未來的大勢(shì)所趨,未來的企業(yè)應(yīng)用肯定是越來越傾向于以開放接口的形式提供服務(wù),各個(gè)業(yè)務(wù)系統(tǒng)之間的聯(lián)系也會(huì)越來越緊密。品高云在14年底的時(shí)候,就已經(jīng)開始思考,未來該以什么樣的技術(shù)來支撐企業(yè)應(yīng)用才能順應(yīng)大勢(shì)。Java的開源技術(shù)資源非常豐富,但是卻始終找不到一套能完美融合企業(yè)應(yīng)用和互聯(lián)網(wǎng)應(yīng)用的開發(fā)框架,最后我們決定自主研發(fā)一套,這個(gè)就是我今天準(zhǔn)備跟大家分享的應(yīng)用開發(fā)框架LEAP。LEAP,全稱為L(zhǎng)ight Enterprise Application Platform,意為輕量級(jí)企業(yè)應(yīng)用開發(fā)平臺(tái),是品高云
3、自主研發(fā)的基于Java的全棧式Web應(yīng)用開發(fā)框架,能完美融合企業(yè)應(yīng)用和互聯(lián)網(wǎng)應(yīng)用。所謂全棧,指的就是Web應(yīng)用的前后端。LEAP擁有自己的模板引擎,我們稱為HTPL,IOC和Bean容器,ORM模塊,以及安全鏈。整體的架構(gòu)如下:這套架構(gòu)看起來非常像現(xiàn)在Java開源界占據(jù)霸主地位的SSH整合框架。而實(shí)際上,他們的功能也非常相似,但是SSH框架相比LEAP來說笨重太多了,光整合這幾個(gè)框架就要耗費(fèi)不少時(shí)間,而且各個(gè)框架后期的配置優(yōu)化都是一個(gè)難題。但是LEAP不同,LEAP一個(gè)框架包含了三個(gè)框架的功能,同時(shí)搭建LEAP本身非常輕量,使用maven創(chuàng)建的java工程,僅僅需要一個(gè)依賴和少量的配置。我們來
4、看下LEAP的幾個(gè)核心特點(diǎn):輕量我們先來看看,一個(gè)基于LEAP的maven工程,它的依賴配置是怎么樣的:這里可以看到,只需要一個(gè)依賴,就可以把LEAP的所有jar包都引入工程中了。然后是配置,搭建一個(gè)完整的LEAP開發(fā)工程,全部的配置如下圖:這里只需要兩個(gè)配置文件,配置內(nèi)容也是及其精簡(jiǎn)。易用LEAP最核心的設(shè)計(jì)理念就是簡(jiǎn)單易用,因此設(shè)計(jì)的時(shí)候,許多規(guī)則都是在于最大限度的降低開發(fā)人員的學(xué)習(xí)成本,同時(shí)讓開發(fā)人員可以用最簡(jiǎn)潔優(yōu)雅的代碼完成復(fù)雜的業(yè)務(wù)操作。這里我以HTPL模板引擎和ORM為例,看下LEAP的使用。HTPL模板引擎是一個(gè)基于HTML注釋的模板引擎,可以讓HTML代碼和模板語言完全分離,互
5、不影響,并且HTPL的模板語言與Java語言的語法非常相似,初學(xué)者完全可以舉一反三輕松學(xué)習(xí)HTPL的模板語言,比如下面的是非判斷:這里的if else和Java中的if else很相似,if的條件表達(dá)式的語法就是Java的語法,前面的#號(hào)表示這段注釋是HTPL的模板語言。這里我們可以很容易想到循環(huán)的語法:HTPL還有更多強(qiáng)大的功能和指令,這里先不深入去說。我們?cè)倏纯碙EAP的ORM模塊。LEAP的ORM框架使用非常簡(jiǎn)單,只需要配置一個(gè)數(shù)據(jù)源即可,這個(gè)就是在前面提到的少量必須的配置之一:這個(gè)配置完成之后,ORM就可以開始對(duì)數(shù)據(jù)庫進(jìn)行操作了。LEAP對(duì)數(shù)據(jù)庫表映射的類稱為Model,所有的Mode
6、l類都有靜態(tài)方法可以直接與數(shù)據(jù)庫交互,Model對(duì)象本身也有操作數(shù)據(jù)庫的接口,聲明一個(gè)Model類的方式就是聲明一個(gè)繼承自leap.orm.model.Model類即可,舉例如下:假設(shè)User類是一個(gè)Model類:這個(gè)類我們通過注解告訴LEAP映射的是哪個(gè)數(shù)據(jù)庫的表,這個(gè)類就是一個(gè)完整的model類了,不需要其他的配置和聲明。接下來我們看一下Model類如何操作數(shù)據(jù)庫:創(chuàng)建一行記錄:刪除一行記錄:按照指定條件查詢數(shù)據(jù)庫記錄:我們可以看到,單表的增刪改查基本都是一行代碼可以完成,使用LEAP的ORM框架可以使原本復(fù)雜麻煩的數(shù)據(jù)庫查詢變得非常簡(jiǎn)單,而且相關(guān)的映射配置,也不用寫任何SQL語句。當(dāng)然,
7、LEAP的ORM還提供了更加強(qiáng)大的動(dòng)態(tài)sql語法以及完全兼容標(biāo)準(zhǔn)SQL語法但是功能更加強(qiáng)大的leapQL查詢語法。這里不再對(duì)LEAP的細(xì)節(jié)深入討論,這些相關(guān)的特性我們可以在LEAP的官網(wǎng)()上看到。實(shí)際上,LEAP除了完善的全棧開發(fā)功能以外,還提供了非常多的面向開發(fā)人員的功能特性,比如:1. 靜態(tài)資源自動(dòng)版本標(biāo)識(shí)2. 用戶身份認(rèn)證3. H5跨域資源共享4. XSS攻擊自動(dòng)防御5. Restful服務(wù)支持等等。這些特性,決定了LEAP框架無論在企業(yè)應(yīng)用開發(fā)上,還是互聯(lián)網(wǎng)應(yīng)用開發(fā)上,都有先天的優(yōu)勢(shì)。LEAP在2015年開始已經(jīng)正式在品高云企業(yè)網(wǎng)盤里作為
8、核心的開發(fā)技術(shù)在使用了,同時(shí),品高云的其他項(xiàng)目組也紛紛開始使用LEAP作為服務(wù)端的開發(fā),都取得非常不錯(cuò)的效果。目前我們也基于LEAP框架正在開發(fā)一個(gè)更加殺手級(jí)的企業(yè)產(chǎn)品,品高云API網(wǎng)關(guān),目前已經(jīng)完成大部分的核心功能,品高云API網(wǎng)關(guān)支持OpenID Connect標(biāo)準(zhǔn)協(xié)議,可以將企業(yè)內(nèi)的所有應(yīng)有系統(tǒng)服務(wù)化,并且統(tǒng)計(jì)所有服務(wù)的使用情況,將幫助企業(yè)在全局上統(tǒng)籌各個(gè)應(yīng)用系統(tǒng)的使用情況并且合理分配企業(yè)內(nèi)部資源。LEAP未來也會(huì)成為我們推薦的BingoLink應(yīng)用后端開發(fā)框架和品高云API網(wǎng)關(guān)的服務(wù)應(yīng)用開發(fā)框架。在2016年初的時(shí)候,我們終于決定正式將LEAP開源出來,分享給大家使用,目前代碼已經(jīng)推送到github上,官網(wǎng)地址:.非常歡迎各位Java的開發(fā)人員來使用LEAP框架,同時(shí),如果有人希望加入我們的開源團(tuán)隊(duì),成為L(zhǎng)EAP核心代碼的貢獻(xiàn)者,也可以聯(lián)系我們。歡迎大
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2022教師法治培訓(xùn)心得體會(huì)
- 2022財(cái)務(wù)部年度總結(jié)
- 防毒安全教育心得范文
- 考研數(shù)學(xué)(二302)研究生考試試卷及解答參考
- 銀行宣傳方案5篇
- 月個(gè)人工作計(jì)劃
- 2021設(shè)計(jì)師個(gè)人的工作總結(jié)報(bào)告五篇
- 繼續(xù)教育自我總結(jié)5篇
- 小學(xué)生軍訓(xùn)心得體會(huì)
- 《囚綠記》教學(xué)設(shè)計(jì)15篇
- 差動(dòng)保護(hù)培訓(xùn)技巧電氣稿課件
- T-CIATCM 007-2019 中醫(yī)藥綜合統(tǒng)計(jì)網(wǎng)絡(luò)直報(bào)信息系統(tǒng)基本功能規(guī)范
- 義務(wù)教育語文課程常用字表-(3500字)
- 曲馬多的臨床應(yīng)用課件
- 外科護(hù)理學(xué)門靜脈高壓
- 防止高空墜落傷害考試題及答案
- 河南科學(xué)技術(shù)出版社小學(xué)信息技術(shù)三年級(jí)上冊(cè)教案
- DB37T 5127-2018 裝配式建筑評(píng)價(jià)標(biāo)準(zhǔn)
- 帶教老師評(píng)價(jià)模板
- 大數(shù)據(jù)與政務(wù)信息共享應(yīng)用(PPT-58頁)課件
- GB∕T 2099.1-2021 家用和類似用途插頭插座 第1部分:通用要求
評(píng)論
0/150
提交評(píng)論