《Spring+MyBatis企業(yè)應(yīng)用實(shí)戰(zhàn)》筆記
P2 Java EE應(yīng)用的分層模型
Domain Object(領(lǐng)域?qū)ο螅印4藢佑梢幌盗械腜OJO(Plain Old Java Object查辩,普通的、傳統(tǒng)的Java對(duì)象)組成买优,這些對(duì)象是該系統(tǒng)的Domain Object(領(lǐng)域?qū)ο螅烁髯运鑼?shí)現(xiàn)的業(yè)務(wù)邏輯方法。
DAO(Data Access Object,數(shù)據(jù)訪問(wèn)對(duì)象)層纽绍。經(jīng)典Java EE應(yīng)用——EAO層蕾久,實(shí)體(Entity)势似。MyBatis——Mapper層拌夏。完成CRUD操作。
Service(業(yè)務(wù)邏輯)層履因。
Controller(控制器)層障簿。
View(表現(xiàn))層。
P3?Java EE應(yīng)用的組件
表現(xiàn)層組件? JSP栅迄、Velocity站故、Freemarker、Tapestry
控制器組件
業(yè)務(wù)邏輯組件? 一個(gè)業(yè)務(wù)邏輯方法應(yīng)該是一個(gè)整體毅舆,因此要求對(duì)業(yè)務(wù)邏輯方法增加事務(wù)性西篓。業(yè)務(wù)邏輯方法僅僅負(fù)責(zé)實(shí)現(xiàn)業(yè)務(wù)邏輯,不應(yīng)該進(jìn)行數(shù)據(jù)庫(kù)訪問(wèn)憋活。因此業(yè)務(wù)邏輯組件中不應(yīng)該出現(xiàn)原始的MyBatis岂津、Hibernate和JDBC等API。
DAO組件? 為了業(yè)務(wù)邏輯組件的實(shí)現(xiàn)與DAO組件的實(shí)現(xiàn)分離悦即,程序應(yīng)該為每個(gè)DAO組件都提供接口吮成。
領(lǐng)域?qū)ο蠼M件? 每個(gè)領(lǐng)域?qū)ο笸ǔ?duì)應(yīng)一個(gè)或多個(gè)數(shù)據(jù)表,領(lǐng)域?qū)ο笸ǔP枰峁?duì)數(shù)據(jù)記錄的訪問(wèn)方式辜梳。
P5?輕量級(jí)Java EE應(yīng)用相關(guān)技術(shù)(Servlet與JSP)
Servlet和JSP其實(shí)是完全統(tǒng)一的粱甫,二者底層的運(yùn)行原理是完全一樣的。實(shí)際上作瞄,JPS必須被Web服務(wù)器編譯成Servlet茶宵,真正在Web服務(wù)器內(nèi)運(yùn)行的是Servlet。從這個(gè)意義上來(lái)看宗挥,JSP相當(dāng)于一個(gè)“草稿”文件节预,Web服務(wù)器根據(jù)該“草稿”文件生成Servlet,真正提供HTTP服務(wù)的是Servlet属韧,因此廣義的JSP包含了JSP和Servlet安拟。
P5 MyBatis3及替代技術(shù)
Hibernate框架是一種開(kāi)源的、輕量級(jí)的ORM框架宵喂,它允許將普通的糠赦、傳統(tǒng)的Java對(duì)象(POJO)映射成持久化類(lèi),允許應(yīng)用程序以面向?qū)ο蟮姆绞絹?lái)操作POJO锅棕,而Hibernate框架則負(fù)責(zé)將這種操作轉(zhuǎn)換成底層的SQL操作拙泽。
MyBatis“半自動(dòng)化”:是相對(duì)Hibernate等提供了全面的數(shù)據(jù)庫(kù)封裝機(jī)制的“全自動(dòng)化”O(jiān)RM實(shí)現(xiàn)而言的,“全自動(dòng)化”O(jiān)RM實(shí)現(xiàn)了POJO和數(shù)據(jù)庫(kù)表之間的映射裸燎,以及SQL的自動(dòng)生成和執(zhí)行顾瞻。
P6 Spring4及替代技術(shù)
Spring設(shè)計(jì)模式——單例模式、工廠模式德绿、抽象工廠模式荷荤、命令模式退渗、職責(zé)鏈模式、代理模式等蕴纳。
2018.7.22
キミの隣—halca
“那選我不就好了会油。要是我的話,無(wú)論是刷素材還是練級(jí)我都陪你古毛,加班我也等你翻翩,既不會(huì)讓你失望也不會(huì)讓你哭,說(shuō)到底根本就不會(huì)讓你覺(jué)得找錯(cuò)了人稻薇,而且下周末的漫展可以作為擺攤的和你一起去嫂冻。”
“錄用塞椎!”