springboot怎么配置swagger 你平時(shí)主要使用什么Java開發(fā)框架?
你平時(shí)主要使用什么Java開發(fā)框架?就拿我們項(xiàng)目來例子討論討論吧。我們的項(xiàng)目是一個(gè)純后臺(tái)服務(wù)的項(xiàng)目,也就是沒有前端頁面,只對(duì)外提供服務(wù);項(xiàng)目是是基于Spring Boot來做的,核心中spring-b
你平時(shí)主要使用什么Java開發(fā)框架?
就拿我們項(xiàng)目來例子討論討論吧。
我們的項(xiàng)目是一個(gè)純后臺(tái)服務(wù)的項(xiàng)目,也就是沒有前端頁面,只對(duì)外提供服務(wù);項(xiàng)目是是基于Spring Boot來做的,核心中spring-boot-starter-web,然后聯(lián)合被人發(fā)現(xiàn)接口,報(bào)文在用的JSON,有極大多數(shù)的接口是從老系統(tǒng)遷移進(jìn)來的,目的是讓調(diào)用方盡肯定地稍許直接修改,所以才持續(xù)了XML的報(bào)文;在開始的生產(chǎn)環(huán)境中,確實(shí)是可以使用的內(nèi)置的Tomcat;獨(dú)立顯卡了Swagger,來做接口的文檔在線自動(dòng)生成。
ORM框架你選的是MyBatis,因此項(xiàng)目中大部分的查詢都能夠做到了單表查詢,并且去查詢條件都很單獨(dú)計(jì)算,所以才再建議使用注解做的SQL語句沒綁定。
因?yàn)轫?xiàng)目不單在用了關(guān)系型數(shù)據(jù)庫,而更多的數(shù)據(jù)是加工關(guān)聯(lián)后存放到了MongoDB中,因此項(xiàng)目也用到了Spring Data MongoDB,我們的MongoDB是做了副本集的部署,使用Spring Data MongoDB,只不需要做簡(jiǎn)單點(diǎn)配置,就可以成功對(duì)多臺(tái)MongoDB的訪問,要是其中一臺(tái)MongoDB掛了,對(duì)服務(wù)也是沒有影響的,所以才我們做MongoDB快速擴(kuò)容的時(shí)候是可以不萬分感謝做的(MongoDB擴(kuò)內(nèi)存和CPU的時(shí)候需要停機(jī))。
和部分系統(tǒng)的交互使用到了RabbitMQ,而Spring Boot如果引入spring-boot-starter-amqp,總之就可以不很比較方便地能完成和RabbitMQ的獨(dú)立顯卡;生產(chǎn)者和消費(fèi)者都十分方便。
是因?yàn)槭羌兘涌诘姆?wù),就是為了能減輕數(shù)據(jù)庫的壓力,因此我們據(jù)業(yè)務(wù)場(chǎng)景,將一些接口的結(jié)果直接緩存到Redis中(數(shù)據(jù)變化不過度,而且業(yè)務(wù)場(chǎng)景的實(shí)時(shí)性要求并非很高)。在集成顯卡Redis的時(shí)候,我們前后試了兩種
Spring Boot項(xiàng)目,再建議使用@Cacheable注解就也可以成功和Redis最簡(jiǎn)單的獨(dú)立顯卡,只不過當(dāng)時(shí)只不過設(shè)置中緩存的超時(shí)時(shí)間夠靈活自如,我們后來我們可以改成了第二種方案;
在用RedisTemplate,這個(gè)可以能夠完成對(duì)Redis的絕大部分操作。
我將堅(jiān)持了能分享Java開發(fā)、架構(gòu)設(shè)計(jì)、程序員職業(yè)發(fā)展等方面的見解,如果能能換取你的關(guān)注。
自研Java分布式產(chǎn)品如何技術(shù)選型,有哪些比較好的技術(shù)推薦?
服務(wù)開發(fā):Springboot、Spring、SpringMVCt
服務(wù)配置與管理:tNetflix公司的Archaius、阿里的Diamond等t
服務(wù)注冊(cè)與突然發(fā)現(xiàn):tEureka、Consul、Zookeeper等t
服務(wù)全局函數(shù):tREST、RPC、gRPCt
服務(wù)熔斷器:tHystrix、Envoy等t
負(fù)載均衡:tRibbon、Nginx等t
服務(wù)接口調(diào)用(客戶端內(nèi)部函數(shù)服務(wù)發(fā)簡(jiǎn)單啊工具):tFeign等t
消息隊(duì)列:tkafka、RabbitMQ、ActiveMQ等t
服務(wù)配置如何中心管理:tSpringCloudConfig、Chef等t
服務(wù)路由(API網(wǎng)關(guān)):tZuul等t
服務(wù)監(jiān)控:tZabbix、Nagios、Metrics、Spectator等t
全鏈路追蹤t:Zipkin、Brave、Dapper等t
服務(wù)部署t:Docker、OpenStack、Kubernetes等t
數(shù)據(jù)流操作開發(fā)包t:SpringCloud Stream(裸芯片與Redis,Rabbit、Kafka等你的郵箱可以接收消息)t
事件消息總線t:SpringCloudBus