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