jetty源碼分析 你平時(shí)主要使用什么Java開發(fā)框架?
你平時(shí)主要使用什么Java開發(fā)框架?就拿我們項(xiàng)目來舉例子討論討論吧。我們的項(xiàng)目是一個(gè)純后臺(tái)服務(wù)的項(xiàng)目,也就是沒有前端頁面,只聯(lián)合提供服務(wù);項(xiàng)目是是基于條件Spring Boot來做的,分解重組spri
你平時(shí)主要使用什么Java開發(fā)框架?
就拿我們項(xiàng)目來舉例子討論討論吧。
我們的項(xiàng)目是一個(gè)純后臺(tái)服務(wù)的項(xiàng)目,也就是沒有前端頁面,只聯(lián)合提供服務(wù);項(xiàng)目是是基于條件Spring Boot來做的,分解重組spring-boot-starter-web,然后聯(lián)合被人發(fā)現(xiàn)接口,報(bào)文可以使用的JSON,有極極個(gè)別的接口是從老系統(tǒng)遷走上來的,為了讓動(dòng)態(tài)創(chuàng)建方盡很有可能地稍許如何修改,因?yàn)楸M量了XML的報(bào)文;在宣布的生產(chǎn)環(huán)境中,也在用的內(nèi)置的Tomcat;集成顯卡了Swagger,來做接口的文檔萬分感謝自動(dòng)生成。
ORM框架你選擇的是MyBatis,因此項(xiàng)目中大部分的查詢都能夠做到了單表查詢,但是查詢條件比較比較單獨(dú)計(jì)算,因此然后在用注解做的SQL語句綁定。
只不過項(xiàng)目不光在用了關(guān)系型數(shù)據(jù)庫,而更多的數(shù)據(jù)是加工關(guān)聯(lián)后需要保存到了MongoDB中,所以項(xiàng)目也應(yīng)用了Spring Data MongoDB,我們的MongoDB是做了副本集的部署,使用Spring Data MongoDB,只是需要做簡單配置,就也可以結(jié)束對(duì)多臺(tái)MongoDB的訪問,假如其中一臺(tái)MongoDB掛了,對(duì)服務(wù)也是沒有影響的,所以我們做MongoDB容量擴(kuò)展的時(shí)候是可以不網(wǎng)做的(MongoDB擴(kuò)內(nèi)存和CPU的時(shí)候不需要欠費(fèi))。
和部分系統(tǒng)的交互使用到了RabbitMQ,而Spring Boot如果能引導(dǎo)出spring-boot-starter-amqp,當(dāng)然就可以很方便地結(jié)束和RabbitMQ的板載顯卡;生產(chǎn)者和消費(fèi)者都十分方便。
是因?yàn)槭羌兘涌诘姆?wù),是為緩解數(shù)據(jù)庫的壓力,所以我我們依據(jù)業(yè)務(wù)場景,將一些接口的結(jié)果就緩存到Redis中(數(shù)據(jù)變化不正常,并且業(yè)務(wù)場景的實(shí)時(shí)性要求不是很高)。在集成Redis的時(shí)候,我們前后試了兩種
Spring Boot項(xiàng)目,就在用@Cacheable注解就可以不成功和Redis最簡單的集成顯卡,不過再后來只不過設(shè)置里緩存的超時(shí)時(shí)間不夠靈話,我們聽說后來把它改成了第二種方案;
不使用RedisTemplate,也可以完成對(duì)Redis的絕大部分操作。
我將持續(xù)多多分享Java開發(fā)、架構(gòu)設(shè)計(jì)、程序員職業(yè)發(fā)展等方面的見解,我希望能得到你的關(guān)注。