Java言語仍然是當(dāng)下“程序猿”們最愛運用的熱門編程言語之一,想要進(jìn)入這個職業(yè),Java能夠為你引路,很多初學(xué)的人可能沒有系統(tǒng)的了解過Java結(jié)構(gòu)都有哪些。今日為我們整理一下常見的Java結(jié)構(gòu)都有什么?
1.Spring結(jié)構(gòu)
Spring結(jié)構(gòu)是現(xiàn)在Java后端結(jié)構(gòu)家族里邊最強壯的一個,具有IOC和AOP兩大利器,簡化了開發(fā)的復(fù)雜性。而且Spring現(xiàn)在能與一切干流開發(fā)結(jié)構(gòu)集成,是一個全能結(jié)構(gòu),Spring讓Java開發(fā)變得簡單。
2.SpringMVC結(jié)構(gòu)
這是一個MVC的開源結(jié)構(gòu)用來替代Struts,是Spring項目里邊的一個重要部分,能和SpringIOC容器結(jié)合,具有松耦合、便利裝備、代碼別離等特點,讓Java程序員開發(fā)WEB項目變得愈加容易。
3.SpringBoot結(jié)構(gòu)
SpringBoot是Spring開源組織下的一個子項目,也是Spring組件一站式解決方法,主要是為了簡化運用Spring的結(jié)構(gòu)難度。
4.SpringCloud
這是一系列結(jié)構(gòu)有序調(diào)集,是現(xiàn)在最火的微服務(wù)結(jié)構(gòu)首選,首先它是利用SpringBoot開發(fā)的便利性奇妙的簡化了分布式系統(tǒng)基礎(chǔ)的開發(fā),如服務(wù)發(fā)現(xiàn)注冊、裝備中心、音訊總線、負(fù)載均衡、斷路器、數(shù)據(jù)監(jiān)控等,都能夠用SpringBoot的開發(fā)風(fēng)格做到一鍵發(fā)動和部署。
5.Netty
Netty是由JBOSS供給的開源的異步的,根據(jù)事情驅(qū)動的網(wǎng)絡(luò)通信結(jié)構(gòu)。能夠快速提高開發(fā)功用,高可靠性的網(wǎng)絡(luò)服務(wù)器和客戶端程序,netty簡化了網(wǎng)絡(luò)運用的編程開發(fā)過程,運用開發(fā)網(wǎng)絡(luò)編程變得反常簡單。
6.Quartz
Quartz是一個根據(jù)Java的廣泛運用的開源的任務(wù)調(diào)度結(jié)構(gòu),做過定時任務(wù)的沒有沒用過這個結(jié)構(gòu)的吧?
7.jQuery
jQuery是一個快速、簡潔的JavaScript結(jié)構(gòu),它封裝JavaScript常用的功用代碼,供給一種簡潔的JavaScript規(guī)劃模式,極大地簡化了JavaScript編程。
8.Log4j
Log4j是Apache的一個開源日志結(jié)構(gòu),經(jīng)過Log4j我們能夠?qū)⒊绦蛑械娜罩拘畔⑤敵龅娇刂婆_、文件等來記錄日志。作為一個最老牌的日志結(jié)構(gòu),它現(xiàn)在的干流版本是Log4j2。Log4j2是從頭架構(gòu)的一款日志結(jié)構(gòu),扔掉了之前Log4j的不足,以及吸取了優(yōu)異日志結(jié)構(gòu)Logback的規(guī)劃。
一、MyBatisGenerator
這個結(jié)構(gòu)能夠依照裝備為咱們主動生成mybatis對應(yīng)的mapper.xml、實體以及dao文件,在前期咱們還需求自己寫mapper文件時,的確是開發(fā)者的一個福音,能夠節(jié)約咱們許多時刻來寫一些無用的增刪改查的dao層代碼,這個結(jié)構(gòu)自身沒有問題,可是卻不合適項目用,很難管理。
在咱們開發(fā)過程中,很難做到對一個項目從一而終,常常一個項目易手幾個人十幾個人都有可能,每個人的開發(fā)習(xí)慣不一樣,我在工作中遇到的問題,項目里用了這個結(jié)構(gòu),可是在后續(xù)開發(fā)過程中,需求改動表結(jié)構(gòu)增刪字段,這個時分,咱們需求從頭生成相關(guān)的代碼,可是這個時分,有些人圖方便或許不知道怎么用這個結(jié)構(gòu),就會挑選直接在生成的代碼里修正,然后還順暢上線了,那接下來,這個模塊根本被廢棄了,后續(xù)的人再加字段,從頭生成代碼會覆蓋他人手藝加入的代碼,十分糾結(jié),本來很簡單的一個問題,到此變得十分棘手,只能心一橫繼續(xù)手藝修正代碼了。
其實這個結(jié)構(gòu)沒有問題,問題是不能有效操控開發(fā)人員運用它,在項目經(jīng)過長時刻多人經(jīng)手后,大都會忘掉最初的夢想,項目代碼變得破爛不堪無法保護(hù),終究走上了重構(gòu)的路途。
所以在挑選結(jié)構(gòu)的時分,我一般不會挑選這個結(jié)構(gòu),取而代之的,比較傾向于運用MybatisPlus或許Jpa,不必靜態(tài)生成代碼,要加字段直接加就好了,十分方便,功能也很強壯,MyBatisGenerator早起幫了咱們很大忙,可是現(xiàn)已不合適新的項目了。
二、MapStruct
先引用一個開發(fā)同仁的文章:mapstruct運用詳解-淼淼之森-博客園,介紹的十分好。
mapstruct便是用來做對象拷貝的,相比beanutils的確有許多長處,且底層實現(xiàn)不是用反射來做的,而是動態(tài)生成實現(xiàn)類,性能也還能夠。還能夠適應(yīng)不同的類型,不同的字段的映射,乃至是復(fù)雜對象也能夠映射,不可謂不強壯??墒菑妷训牡胤绞切枨蟾冻龃鷥r的。
最近接觸的一個項目用到了這個結(jié)構(gòu),打內(nèi)心里沖突,應(yīng)為常常要寫expression表達(dá)式,在寫的過程中是沒有任何提示的,寫錯了不知道,IDE里不會主動提示出來,每次都要編譯后才在操控臺輸出過錯,然后再去改,十分費事,而且要寫的表達(dá)式有些其實便是java代碼,放到字符串里,我覺得一般。主要是用這個開發(fā)效率有點低,我喜歡那種錯了就直接提示出來,而不是編譯的時分再提示。
廣州天河區(qū)珠江新城富力盈力大廈北塔2706
020-38013166(網(wǎng)站咨詢專線)
400-001-5281 (售后服務(wù)熱線)
深圳市坂田十二橡樹莊園F1-7棟
Site/ http://www.szciya.com
E-mail/ itciya@vip.163.com
品牌服務(wù)專線:400-001-5281
長沙市天心區(qū)芙蓉中路三段398號新時空大廈5樓
聯(lián)系電話/ (+86 0731)88282200
品牌服務(wù)專線/ 400-966-8830
旗下運營網(wǎng)站:
Copyright ? 2016 廣州思洋文化傳播有限公司,保留所有權(quán)利。 粵ICP備09033321號