上一篇講了企業(yè)開(kāi)發(fā)的SSH這一套,這是java入門的必然之路, 基本所有的公司只要是做web開(kāi)發(fā),都要用到這些東西。如果某一個(gè)公司不用這些框架,自己編了一套,或者用的很偏,比如spring play framework,這樣的公司基本可以不用待,因?yàn)樵谶@些公司會(huì)把你的技術(shù)體系給框死,接觸不到外面的世界,就想做oa系統(tǒng)維護(hù)的,做了十年,突然發(fā)現(xiàn)如果不做oa系統(tǒng)維護(hù),自己什么也不會(huì)了。
這一篇講講java的常用組件。因?yàn)樽鲰?xiàng)目開(kāi)發(fā),大的框架定了,剩下的就是開(kāi)發(fā)了,但是開(kāi)發(fā)中會(huì)用到各種各樣的組件來(lái)簡(jiǎn)化開(kāi)發(fā)或提高效率,常見(jiàn)的組件包括以下幾類:
1、視圖框架:freemarker
2、服務(wù)端校驗(yàn):hibernate-validator
3、工作流:activiti,jbpm
4、任務(wù)調(diào)度:spring task、quartz
5、數(shù)據(jù)連接池:druid、dbcp、dbcp2
6、緩存:ehcache
7、日志:log4j、logback、log4j2
8、消息隊(duì)列:rabbitmq、activemq
9、版本管理:git、svn
10、工具類:Apache commons、Dozer、guava、POI、Jackson
11、內(nèi)存數(shù)據(jù)庫(kù):redis、mongodb
這些組件的引進(jìn)會(huì)使開(kāi)發(fā)變的非常便利。比如日志框架,這個(gè)會(huì)和spring整合的非常好,日志的處理不用擔(dān)心。
比如Hibernate-validator,這個(gè)和Hibernate是沒(méi)有必然關(guān)系的,這個(gè)是服務(wù)端的參數(shù)校驗(yàn)jar包。好多人會(huì)問(wèn),前端都校驗(yàn)過(guò)了,為啥后端還需要再校驗(yàn),原因就是很多人會(huì)繞過(guò)前段,直接通過(guò)拼寫(xiě)url進(jìn)行參數(shù)請(qǐng)求,這些時(shí)候就必須對(duì)參數(shù)進(jìn)行校驗(yàn)了,不能等到系統(tǒng)報(bào)異常。
再比如數(shù)據(jù)源這個(gè),能非常大的提升數(shù)據(jù)庫(kù)連接效率,記得我上學(xué)那會(huì)還手寫(xiě)數(shù)據(jù)源,代碼至今還保存這,就一個(gè)類,里面簡(jiǎn)單的進(jìn)行數(shù)據(jù)庫(kù)連接的管理。當(dāng)時(shí)還是非常先進(jìn)的,別人都是直連數(shù)據(jù)庫(kù),我這已經(jīng)升級(jí)到數(shù)據(jù)連接池了。這地方推薦一個(gè)druid,中文名字是潘多拉,多么霸氣的名字啊。說(shuō)到這,阿里對(duì)他自身的各種框架取名還是比較屌的,比如伏羲調(diào)度系統(tǒng),宙斯作業(yè)平臺(tái)(阿里hadoop)。這個(gè)連接池非常穩(wěn)定,我們做數(shù)據(jù)批量處理,連接幾千萬(wàn)次,都不會(huì)出問(wèn)題,而且這個(gè)自帶sql監(jiān)控和service監(jiān)控功能,和spring能完美結(jié)合到一起,可以用界面的方式來(lái)查詢哪些sql執(zhí)行時(shí)間過(guò)長(zhǎng),哪些service執(zhí)行有問(wèn)題,還是比較不錯(cuò)的,推薦使用。
java生態(tài)體系完善的原因就在于不斷有各種各樣的組件加入到這個(gè)體系中,解決生產(chǎn)中出現(xiàn)的各種各樣問(wèn)題。談到開(kāi)源,國(guó)內(nèi)做的比較好的就屬阿里了。馬云現(xiàn)在給阿里的定位是科技公司,而不是一個(gè)電商公司。這幾年阿里為開(kāi)源社區(qū)貢獻(xiàn)了很多,比如dubbo(分布式服務(wù)治理平臺(tái))、fastJson、Rocketmq、Tidb、OceanBase、AliRedis等等,雖然有一些是阿里玩剩的,然后開(kāi)源了,但是貢獻(xiàn)還是非常大的。相比阿里,百度做的就差一些,常用的是echarts、ueditor,騰訊更寒磣了,沒(méi)用過(guò)。騰訊越來(lái)越像一個(gè)商業(yè)公司,比如和oracle引入的騰訊云,等于是oracle在中國(guó)的代理商,不像阿里有很深的技術(shù)積累。當(dāng)然這些都是商業(yè)策略,跟個(gè)人沒(méi)關(guān)系,去BAT的任何一家都是很牛的,至少可以在很多人面前吹一吹,今天又和馬云見(jiàn)個(gè)面,明天又偶遇馬化騰,說(shuō)者高高在上, 聽(tīng)的人熱血沸騰,恨不能立馬跳槽。所以現(xiàn)在中國(guó)經(jīng)濟(jì)的新引擎,新的三駕馬車:馬云、馬化騰、馬東敏。