java項(xiàng)目開(kāi)發(fā)實(shí)例 現(xiàn)在流行的前后端分離項(xiàng)目都使用的是什么前后端框架?
現(xiàn)在流行的前后端分離項(xiàng)目都使用的是什么前后端框架?開(kāi)發(fā)框架主要分三塊,前端,web和持久化,三者是可以自由組合的。我分開(kāi)來(lái)說(shuō)。web框架以前Java web框架還有struts1,struts2,sp
現(xiàn)在流行的前后端分離項(xiàng)目都使用的是什么前后端框架?
開(kāi)發(fā)框架主要分三塊,前端,web和持久化,三者是可以自由組合的。我分開(kāi)來(lái)說(shuō)。
web框架
以前Java web框架還有struts1,struts2,springMVC可以選。
目前只有一個(gè)選擇:SpringMVC,其它一個(gè)能打的都沒(méi)有。無(wú)論是Play,GOG這類(lèi)快速開(kāi)發(fā)框架,還是spark(此spark非彼spark)這類(lèi)輕量級(jí)開(kāi)發(fā)框架,或者struts2這樣的競(jìng)爭(zhēng)對(duì)手。無(wú)論從使用人數(shù)還是生態(tài)上來(lái)看,和SpringMVC都不是一個(gè)量級(jí)。
其它框架宣傳得再怎么好,都不建議投入大量精力。學(xué)習(xí)框架的設(shè)計(jì)思路可以,生產(chǎn)環(huán)境使用請(qǐng)直接使用SpringMVC。Spring系的基礎(chǔ)設(shè)施不是其它框架可比擬的。要快速開(kāi)發(fā)可以使用springboot,只需要pom依賴 一個(gè)enable注解就可以直接使用。
持久化框架
目前主流的有兩個(gè)JPA和MyBatis。
如果項(xiàng)目是數(shù)據(jù)建模,那么使用Mybatis;如果項(xiàng)目是對(duì)象建模,那么使用JPA。
這里還要提一下Spring。SpringBoot的spring-data子項(xiàng)目應(yīng)該是想統(tǒng)一這兩者。不止是這兩者,它的野心更大,想統(tǒng)一所有的持久層,db,redis,elasticsearch全部都有對(duì)應(yīng)的項(xiàng)目。它想將所有的持久化操作都抽象為Repository操作。如果成功的話,業(yè)務(wù)邏輯中就完全不需要關(guān)心持久層選型了,切換框架也很方便。
前端框架
前端框架目前有三個(gè)可選項(xiàng)react,ag和vue。
react的語(yǔ)法個(gè)人很不喜歡,直接pass。。。。
ag國(guó)內(nèi)熱度好像不高,沒(méi)太關(guān)注。
最終選的是vue,簡(jiǎn)單上手快。配套u(yù)i庫(kù)也比較完善了。
如果項(xiàng)目中要開(kāi)發(fā)小程序,建議使用vue,語(yǔ)法高度一致,會(huì)vue瞄一眼就知道怎么開(kāi)發(fā)小程序了。
Java開(kāi)發(fā)中使用Spring框架帶來(lái)的好處是什么?
spring可以說(shuō)是在JAVA開(kāi)發(fā)者中最鼎鼎大名的框架了,很多人從來(lái)沒(méi)有看過(guò)jdk源碼,卻對(duì)spring中的一切津津樂(lè)道,可以說(shuō)spring從jdk中誕生,但是卻無(wú)限增加了JAVA的魅力!
spring誕生背景是什么?
以前的JAVA對(duì)象,無(wú)論是在方法中使用,或者注入都需要new出來(lái),由應(yīng)用程序或者直接說(shuō)開(kāi)發(fā)者中進(jìn)行管理,不僅會(huì)創(chuàng)建大量對(duì)象,還難屬于強(qiáng)耦合,spring憑借著IOC(控制反轉(zhuǎn))的理念將對(duì)象的創(chuàng)建與維護(hù)都使用spring容器來(lái)做,通過(guò)依賴注入實(shí)現(xiàn)對(duì)象的在運(yùn)行期的注入使用!
spring有什么好處?
除了上面說(shuō)到的控制反轉(zhuǎn),管理對(duì)象以外,spring還集成了諸多優(yōu)秀的功能??!
1,解耦:用對(duì)代碼的低侵入性消除了原本對(duì)象之間的強(qiáng)依賴關(guān)系!
2,spring aop:面向切面編程,可以讓我們把類(lèi)似于日志輔助,安全驗(yàn)證,攔截等等這種非業(yè)務(wù)代碼抽象出來(lái),實(shí)現(xiàn)與業(yè)務(wù)代碼的解耦!
3,spring提供了方便的組件插拔,能讓開(kāi)發(fā)者快速的集成諸如緩存,數(shù)據(jù)庫(kù)連接,消息等更為豐富的組件!
4,spring支持事務(wù)處理,通過(guò)簡(jiǎn)單的注解就可以開(kāi)啟事務(wù)!
5,spring家族的springboot可以用來(lái)當(dāng)做微服務(wù)基礎(chǔ)架構(gòu),springcloud更是只需要很少的配置和代碼編寫(xiě)便能獲得一個(gè)穩(wěn)定的服務(wù)架構(gòu)!
spring可以說(shuō)是好處多多,很多人把spring當(dāng)做JAVA圣經(jīng),不僅獲得良好的使用體驗(yàn),從spring源碼學(xué)到編程技巧,設(shè)計(jì)模式等!
關(guān)于spring,還有更多話要說(shuō),以后會(huì)逐步分享,敬請(qǐng)關(guān)注。。。