java這門(mén)大家都所熟悉的開(kāi)發(fā)語(yǔ)言,那么對(duì)于java語(yǔ)言來(lái)說(shuō)為什么它會(huì)這么的受歡迎呢?從java面世以來(lái)java在開(kāi)發(fā)界的地位一直是任何一個(gè)開(kāi)發(fā)語(yǔ)言都沒(méi)有辦法去撼動(dòng)的,對(duì)于開(kāi)發(fā)者來(lái)說(shuō)將java的主流框架有哪些呢?
其一是傳統(tǒng)企業(yè)開(kāi)發(fā)。
其二是互聯(lián)網(wǎng)企業(yè)開(kāi)發(fā)。
常用技術(shù)有:struts1/2,Spring/mvc/boot/cloud,Hibernate/MyBatis。在此論述的是JavaEE,JavaME另有他論。技術(shù)核心原理、理論知識(shí)、優(yōu)點(diǎn)缺點(diǎn)、功能作用等就不再展開(kāi)描述。
一、傳統(tǒng)企業(yè)開(kāi)發(fā)要求安全、穩(wěn)定,易于維護(hù)。常用于政府機(jī)關(guān)、企業(yè)OA、ERP等管理系統(tǒng),對(duì)于此類(lèi)型系統(tǒng)常用框架是Struts1/2+Spring+Hibernate/MyBatis/Ibatis/Servlet,至今統(tǒng)計(jì)很多政府系統(tǒng)多用老框架,不易更新擴(kuò)展。為便于維護(hù)與新系統(tǒng)融合,所以常采用穩(wěn)定的系統(tǒng)架構(gòu)技術(shù)。也有部分采用Springmvc,迭代舊的系統(tǒng)。
常有組合有:Struts+Spring+Mybatis,SpringMVC+Hibernate,Springmvc+MyBatis,Struts1/2Hibernate
二、互聯(lián)網(wǎng)企業(yè)開(kāi)發(fā)要求高并發(fā)、高用性、易擴(kuò)展。常用于科技企業(yè),交互系統(tǒng)、支付系統(tǒng)、購(gòu)物系統(tǒng)等。而針對(duì)這些系統(tǒng)老技術(shù)框架不易于開(kāi)發(fā)實(shí)現(xiàn)分布式、版本更新、擴(kuò)展,近幾年出現(xiàn)不少分布式技術(shù)。
常使用springboot,springcloud的套件組裝,拆分各子業(yè)務(wù)系統(tǒng),對(duì)核心業(yè)務(wù)服務(wù)進(jìn)行解耦劃分,可實(shí)現(xiàn)靈活組裝,極大提升業(yè)務(wù)可復(fù)用性、拆分性。
另外,采用權(quán)限分級(jí)管理,異步調(diào)用及服務(wù)降級(jí)等方式,有利保證系統(tǒng)的穩(wěn)定性。
Springcloud的組件有,服務(wù)發(fā)現(xiàn)(NetflixEureka),客服端負(fù)載均衡(NetflixRibbon),斷路器(NetflixHystrix),分布式配置(SpringCloudConfig)。
結(jié)合k8s,docker編排,讓springcloud得到更有效的發(fā)揮其作用。
舉例架構(gòu)如下:
系統(tǒng)采用一系列穩(wěn)定的技術(shù)框架,實(shí)現(xiàn)數(shù)據(jù)的讀寫(xiě)分析、數(shù)據(jù)清洗、整合、匯總、統(tǒng)計(jì)分析、搜索引擎、推薦分析,得出可信度、高精度的結(jié)果。
基于nodejs、vue的混合前端開(kāi)發(fā)體系實(shí)現(xiàn)前后分離,Springmvc,Springboot,SpringCloud應(yīng)用開(kāi)發(fā)框架以及SOA的理念,Java、NLP提供語(yǔ)義分析;通過(guò)CDN,業(yè)務(wù)路由、多重負(fù)載均衡以及分布式緩存、數(shù)據(jù)庫(kù)存儲(chǔ)等技術(shù),提供一個(gè)高可靠、高并發(fā)、可擴(kuò)展的大型分布式系統(tǒng)。
技術(shù)細(xì)分
核心框架:SpringBoot,Springcloud
安全框架:ApacheShiro
視圖框架:SpringMVC
服務(wù)端驗(yàn)證:HibernateValidator
任務(wù)調(diào)度:Quartz
持久層框架:Mybatis、Mybatisplus
數(shù)據(jù)庫(kù)連接池:AlibabaDruid
緩存框架:Ehcache
日志管理:SLF4J、Log4j
工具類(lèi):ApacheCommons、Jackson、Xstream、
后端渲染模板引擎:Thymeleaf