極簡Spring Boot搭建、開發、部署
Spring
最近在看Spring Boot和Spring Cloud,準備把相關的技術點用代碼實現起來,比如註冊中心(Eureka)、網關(Zuul)、負載均衡(Ribbon)等。一步步來吧,寫個系列文章記錄一下。
給自己定的寫作原則是注重實操,理論性的東西就不講了,或者一帶而過。
爭取拿出乾的不能再乾的東西。
——老碼農
之前我寫過《Spring boot+MyBatis+PageHelper+JSON》,這是以Spring Boot為主,不涉及Spring Cloud,後續的文章以Spring Cloud為主,Spring Boot為輔了。
需求
1、 使用Spring Boot搭建基於Restful風格的Http服務。
2、 介面1:get方法,url中包含姓名,返回「你好,{姓名}」等內容。
3、 介面2:post方法,接收返回JSON。
搭建Spring Boot工程
Spring Boot特點就是簡化Spring工程的搭建、開發和部署。還記得我剛參加工作的時候,還沒Maven,那一個個lib包的找啊,要命。
後來有Maven了,倒是省了下載,可還是要在pom里寫一堆的dependency,大家可以翻翻自己工作中使用的框架裡面的pom有多少行~~~
有了Spring boot就簡單多了,以本Demo為例,因為我們只是簡單地構建一個Http服務,所以如下操作即可:
訪問http://start.spring.io
構建Spring Boot
將下載的zip包導入我們的Eclipse中,代碼結構如下:
代碼結構
打開pom.xml,著重的配置如下:
pom1
pom2
pom3
下面還有spring的鏡像倉庫,我們有自己的,刪掉也行。
至此,搭建完畢,可以使用Maven打包發布了。
pom裡面一共就配了一個parent,引入了兩個dependency(其中test那個都可以不引用)。
自己手工搭建過Spring工程的都知道這有多簡單多方便。
Spring Boot內嵌了Tomcat、Jetty容器,默認是Tomcat,如果想使用Jetty的話,pom做如下更改即可:
使用jetty
更改埠號:在resources目錄下,有個application.properties文件(現在有許多教程使用的是application.yml文件),我們可以在裡面修改埠號。
properties:
properties
yml:
yml
如圖,會寫properties,應該就會寫yml。
用yml要注意冒號(:)後面要跟一個空格。
啟動Spring Boot
開發時,可以在Eclipse中直接啟動SpringbootdemoApplication。
實際使用時,可以通過Maven打成jar、war。
本例使用jar,在target目錄中,使用「java -jar springbootdemo-0.0.1-SNAPSHOT.jar」命令。
GET介面
創建HelloController,代碼如下:
GET方法
結果:
GET 結果
後台日誌:
後台日誌
POST介面
接收和返回的數據都是JSON格式,這樣用起來最爽。
構建數據接收類,HelloReq:
HelloReq
構造函數、Get/Set方法、toString方法省略。
構建數據返回類,HelloRes:
HelloRes
構造函數、Get/Set方法、toString方法省略。
HelloController增加如下方法:
Post方法
使用Postman等工具發送post請求:
設置頭:
Postman頭設置
設置消息體:
Postman設置消息體
結果如下:
Post結果
後台日誌:
後台日誌
PUT、DELETE介面就不寫了,大同小異。
下一篇寫Spring Cloud的註冊中心——Eureka
※對於Zookeeper一些面試題自己的答案
※對於Dubbo一些面試題自己的答案
※Dubbo消費者提供者簡單例子
※Java單例模式的學習筆記
TAG:Java個人學習心得 |
※安卓開發中的Model-View-Presenter
※BCH應用開發的門戶網站:developer.bitcoin.com
※魅族與Google建立聯繫 開發Android Go手機
※Fincantieri和Titomic合作開發3D列印造船技術
※Fieldbit和InfinityAR宣布合作開發AR智能眼鏡
※Windows 7下搭建pyhton開發環境
※JetBrains殺入Python開發,發布全新機器學習Web方案!
※谷歌開發新系統Fuchsia 計劃取代Android和Chrome OS
※簡化 Django 開發的八個 Python 包
※Python web開發:Flask的URL和視圖
※使用 Visual Studio Code 搭建 C/C+開發和調試環境
※SpringBoot整合Quartz 註解開發
※Mixed Reality Toolkit-Unity開發系列—Sharing模塊
※LifeSignals推出與3M和意法半導體聯合開發的Life Signal?系列處理器
※Python web開發:Flask的項目配置
※Mozilla 推出開源瀏覽器 Firefox Reality,專為 VR 一體機和 AR 頭顯開發
※Mozilla推出開源瀏覽器Firefox Reality,專為VR一體機開發
※SpringBoot | 第十九章:web 應用開發之 WebSocket
※BCH新開發者平台Developer.bitcoin上線,加速BCH應用開發
※SpringCloud實戰開發系列課程-創建部門微服務