jfinal框架的優(yōu)缺點(diǎn) java三大主流框架
- 夕逆IT
- 開發(fā)語(yǔ)言
- 2023-08-13
- 397
其實(shí)jfinal框架的優(yōu)缺點(diǎn)的問(wèn)題并不復(fù)雜,但是又很多的朋友都不太了解java三大主流框架,因此呢,今天小編就來(lái)為大家分享jfinal框架的優(yōu)缺點(diǎn)的一些知識(shí),希望可以幫...
其實(shí)jfinal框架的優(yōu)缺點(diǎn)的問(wèn)題并不復(fù)雜,但是又很多的朋友都不太了解java三大主流框架,因此呢,今天小編就來(lái)為大家分享jfinal框架的優(yōu)缺點(diǎn)的一些知識(shí),希望可以幫助到大家,下面我們一起來(lái)看看這個(gè)問(wèn)題的分析吧!
Javaweb開發(fā),大企業(yè)普遍用哪些常用框架界面
我來(lái)回答一下,具體用什么框架跟項(xiàng)目規(guī)模和大小有很大的關(guān)系,下面從單體應(yīng)用架構(gòu)和微服務(wù)架構(gòu)兩個(gè)方面講一下。
一、單體應(yīng)用架構(gòu)單體應(yīng)用架構(gòu)比較簡(jiǎn)單,普遍用到就是五大框架,包括mvc層、持久層等。由于這五大框架是web開發(fā)框架學(xué)習(xí)的基礎(chǔ),相對(duì)于微服務(wù)框架比較簡(jiǎn)單,在此簡(jiǎn)單介紹一下。
Spring:ioc容器和bean管理,解決的是業(yè)務(wù)邏輯層和其他各層的松耦合問(wèn)題,也起到紐帶和橋梁的作用。Springmvc:目前使用最普遍和最流行的mvc框架。Struts2:也是一款類似于Springmvc功能的mvc框架,它的前身struts1基本沒(méi)人使用了。struts2相較于springmvc有諸多劣勢(shì),包括自身漏洞門問(wèn)題,慢慢走向沒(méi)落。現(xiàn)在使用的大部分都是維護(hù)的老項(xiàng)目老系統(tǒng)。hibernate:重量級(jí)的面向?qū)ο蟮某志脤涌蚣?,其?shí)它的功能非常強(qiáng)大,由于其自身功能的強(qiáng)大在使用和配置上比較復(fù)雜,很多程序員待之以鄙夷。hibernate用于中小系統(tǒng)項(xiàng)目還是很合適的,開發(fā)效率較高。mybatis:是一款中低量級(jí)別的半自動(dòng)的持久層框架,由于自身使用的靈活性和易于aql調(diào)優(yōu),目前還是非常流行的,很多大型項(xiàng)目都用到它。二、微服務(wù)架構(gòu)微服務(wù)架構(gòu)相對(duì)于單體應(yīng)用架構(gòu)復(fù)雜些,尤其是微服務(wù)架構(gòu)用到分布式應(yīng)用架構(gòu)就更為復(fù)雜。
springboot:微服務(wù)基礎(chǔ)框架,由Pivotal團(tuán)隊(duì)提供的全新框架,其設(shè)計(jì)目的是用來(lái)簡(jiǎn)化新Spring應(yīng)用的初始搭建以及開發(fā)過(guò)程。該框架使用了特定的方式來(lái)進(jìn)行配置,從而使開發(fā)人員不再需要定義樣板化的配置。通過(guò)這種方式,SpringBoot致力于在蓬勃發(fā)展的快速應(yīng)用開發(fā)領(lǐng)域(rapidapplicationdevelopment)成為領(lǐng)導(dǎo)者。特點(diǎn):1.創(chuàng)建獨(dú)立的Spring應(yīng)用程序2.嵌入的Tomcat,無(wú)需部署WAR文件3.簡(jiǎn)化Maven配置4.自動(dòng)配置Spring5.提供生產(chǎn)就緒型功能,如指標(biāo),健康檢查和外部配置6.絕對(duì)沒(méi)有代碼生成和對(duì)XML沒(méi)有要求配置。一句話總結(jié):使用springboot可以高效快速開發(fā)web應(yīng)用,而且可以不使用單體應(yīng)用開發(fā)框架中那些繁雜的xml配置。Dubbo:Dubbo是一個(gè)分布式服務(wù)框架,致力于提供高性能和透明化的RPC遠(yuǎn)程服務(wù)調(diào)用方案,以及SOA服務(wù)治理方案。簡(jiǎn)單的說(shuō),dubbo就是個(gè)服務(wù)框架,如果沒(méi)有分布式的需求,其實(shí)是不需要用的,只有在分布式的時(shí)候,才有dubbo這樣的分布式服務(wù)框架的需求,并且本質(zhì)上是個(gè)服務(wù)調(diào)用的東東,說(shuō)白了就是個(gè)遠(yuǎn)程服務(wù)調(diào)用的分布式框架(告別WebService模式中的WSdl,以服務(wù)者與消費(fèi)者的方式在dubbo上注冊(cè))其核心部分包含:1.遠(yuǎn)程通訊:提供對(duì)多種基于長(zhǎng)連接的NIO框架抽象封裝,包括多種線程模型,序列化,以及“請(qǐng)求-響應(yīng)”模式的信息交換方式。2.集群容錯(cuò):提供基于接口方法的透明遠(yuǎn)程過(guò)程調(diào)用,包括多協(xié)議支持,以及軟負(fù)載均衡,失敗容錯(cuò),地址路由,動(dòng)態(tài)配置等集群支持。3.自動(dòng)發(fā)現(xiàn):基于注冊(cè)中心目錄服務(wù),使服務(wù)消費(fèi)方能動(dòng)態(tài)的查找服務(wù)提供方,使地址透明,使服務(wù)提供方可以平滑增加或減少機(jī)器。SpringCloud:用官方文檔的說(shuō)明:SpringCloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中的一些通用模式(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智能路由,微代理,控制總線,一次性令牌,全局鎖,領(lǐng)導(dǎo)選舉,分布式會(huì)話,群集狀態(tài))。分布式系統(tǒng)的協(xié)調(diào)導(dǎo)致了鍋爐板模式,并且使用SpringCloud開發(fā)人員可以快速地站起來(lái)實(shí)現(xiàn)這些模式的服務(wù)和應(yīng)用程序。它們可以在任何分布式環(huán)境中正常工作,包括開發(fā)人員自己的筆記本電腦,裸機(jī)數(shù)據(jù)中心和受管平臺(tái),如CloudFoundry。以上就是公司普遍使用的一些框架,當(dāng)然還有其他的一些框架,比如jFinal、ejb、公司自研封裝的一些框架等等,不管用什么框架,技術(shù)選型的前提就是滿足需求,學(xué)習(xí)成本低,開發(fā)效率高,伸縮性能和可擴(kuò)展性能要好等等。
以上,你都用過(guò)嗎?歡迎留言討論。
【無(wú)情懷,不編碼。做一個(gè)有情懷的碼農(nóng),雖千萬(wàn)人,吾往矣!】關(guān)注java自學(xué)、java技術(shù)、求職領(lǐng)域,為你導(dǎo)航領(lǐng)路,指點(diǎn)迷津,分享學(xué)習(xí)感受和技能經(jīng)驗(yàn)。歡迎點(diǎn)贊、轉(zhuǎn)發(fā)、關(guān)注和留言,任何java學(xué)習(xí)或求職面試問(wèn)題可以留言私信,有問(wèn)必答。Java開發(fā)如果不讓使用spring框架,會(huì)有多大影響
這個(gè)想法不錯(cuò)!如果沒(méi)有spring,我們正常的一個(gè)項(xiàng)目應(yīng)該怎么搭建和開發(fā)?
不允許使用Spring框架意味著搭建的項(xiàng)目不允許使用SpringBoot、SpringMVC、Spring這些Spring家族的框架,既然如此ORM框架我們也不要使用,在這樣的限制條件下,項(xiàng)目應(yīng)該如何搭建?日常CRUD應(yīng)該如何開發(fā)?
心動(dòng)不如行動(dòng),開始搭建,先創(chuàng)建一個(gè)簡(jiǎn)單的maven項(xiàng)目no_spring_example:
這個(gè)項(xiàng)目我們需要它具備如下的幾個(gè)能力:
1、能夠提供http接口訪問(wèn)能力;
2、能夠操作MySQL數(shù)據(jù)庫(kù),支持事務(wù),支持連接池;
3、能夠操作redis;
4、可以部署在tomcat容器。
開始搭建中。。。
竟然花了我將近2個(gè)小時(shí)的時(shí)間,終于跑起來(lái)了,先看看項(xiàng)目整體架子:
相關(guān)包介紹:
org.example.conf:
DruidUtil:數(shù)據(jù)源配置,采用的是阿里巴巴開源的druid;MysqlBaseUtil:Mysql數(shù)據(jù)庫(kù)的增、刪、改、查基本操作,支持單次和批量;RedisUtil:redis操作工具類,采用的是JedisPool。org.example.dao:
Test1Dao:這個(gè)就是對(duì)數(shù)據(jù)庫(kù)里test1表的操作。org.example.dispatcher:
StartupServlet:?jiǎn)?dòng)類Servlet,利用loda-on-startup來(lái)初始化加載WEB-INF/config目錄的一些配置文件;Config:即加載servlet.conf文件中的配置信息,比如MySQL連接信息、redis連接信息org.example.filter:
GolbalFilter:全局過(guò)濾器,web三大組件之一;org.example.servlet:
Test1AddServlet:新增數(shù)據(jù)api;讓我們把它運(yùn)行到tomcat容器中,然后訪問(wèn)接口:http://localhost:8080/no_spring_example_war/test1/add.do
返回成功了,查看數(shù)據(jù)庫(kù)表數(shù)據(jù):
這樣我們的數(shù)據(jù)庫(kù)操作就通了,一個(gè)完全沒(méi)有Spring相關(guān)框架參與的小架子就搭建完畢!
由于篇幅原因,涉及到redis操作、數(shù)據(jù)庫(kù)事務(wù)并沒(méi)有展現(xiàn),感興趣的同學(xué)可以私信我獲取該項(xiàng)目源代碼,讓我們一起回憶青春~
回到問(wèn)題本身,沒(méi)有spring框架,對(duì)我們開發(fā)有什么影響?
結(jié)合上面這個(gè)項(xiàng)目來(lái)看,確實(shí)需要我們自己做的事情比較多,比如:
參數(shù)的獲取、校驗(yàn)、序列化成對(duì)象;數(shù)據(jù)的返回,反序列化成json;數(shù)據(jù)庫(kù)的操作需要我們手寫sql;連接池需要我們自己初始化,事務(wù)需要我們自己回滾;只能使用Filter、Interceptor,不再有強(qiáng)大的AOP,這個(gè)也需要你自己去實(shí)現(xiàn);隨著業(yè)務(wù)的復(fù)雜,我們需要集成其他功能,例如異步、中間件等都需要我們自己去開發(fā);用慣了Spring框架的我們,或許這個(gè)時(shí)候才知道它的好吧~
不過(guò)話說(shuō)回來(lái),如果真的在實(shí)際工作中不用Spring框架完成一個(gè)項(xiàng)目的話,你的基礎(chǔ)能力一定會(huì)有很大的提升,包括工具類的抽取、對(duì)象的封裝,基礎(chǔ)組件的使用以及理解等,只要你是一個(gè)有追求的程序員~
框架雖好用,但是卻容易蒙住我們的雙眼。
最后,給你們?cè)倏匆谎墼?jīng)多么熟悉的web.xml:
好了,文章到這里就結(jié)束啦,如果本次分享的jfinal框架的優(yōu)缺點(diǎn)和java三大主流框架問(wèn)題對(duì)您有所幫助,還望關(guān)注下本站哦!
本文鏈接:http://xinin56.com/kaifa/989.html