網上有不少springboot的入門教程,本身也由於項目要使用springboot,因此利用業餘時間自學了下springboot和springcloud,使用下來發現springboot仍是挺簡單的,體現了極簡的編程風格,大部分通用都是經過註解就能夠完成,下面就來詳細講解下如何使用springboot來開發一個簡單的restful api網關功能,能夠提供給H5或者android、ios進行接口開發,仍是很方便的。php
有不少方法能夠快速建立Springboot項目,能夠經過idea的springboot initialization來建立,也能夠經過手工新建一個maven工程,而後引入springboot的dependency來完成sprignboot的工程導入,還能夠經過spring官網的來建立springboot項目,由於有些同窗可能沒裝idea,這裏就經過官網的工程初始化指引來建立一個springboot空工程。java
網址 https://start.spring.io 打開網址能夠看到下圖android
在serch for dependency輸入web,便可完成基本的restful接口網關的功能,若是要JPA或者oauth安全相關的組件,能夠增長rest repository、spring security等相關組件依賴庫,spring提供的配套組件仍是不少的,基本涵蓋了全部應用場合。
加入web組件後,點擊下方的綠色按鈕Generate Project便可建立一個springboot工程,而且自動下載到本地,接下來直接在idea打開該工程就能夠了,在建立的時候能夠選擇Maven工程或者Gradle工程,這裏咱們使用了比較熟悉的Maven工程。ios
在idea中打開工程 ,目錄結構入下圖:web
能夠看到工程中有maven的pom文件,也自動建立了SpringbootStartApplication.java該類爲springboot的啓動類,待會兒咱們一塊兒看下這個類,先看下maven的pom文件有哪些。這裏主要是依賴了springboot的1.4.7版本,目前最新已經更新到1.5.6了,這裏沒有用最新版本,仍是不當小白鼠了,在dependency中依賴了spring-boot-starter-web還有個test測試的組件,若是不寫測試代碼,能夠不使用該test組件,最後還加入了支持springboot的maven plugin組件。spring
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.demo</groupId> <artifactId>pollydemo</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>pollydemo</name> <description>Demo project for Spring Boot</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.4.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
剛看完了pom文件,在導入工程的時候,ide通常會自動導入依賴庫,在國內訪問maven的依賴庫速度感人,建議使用阿里雲的maven鏡像服務器,或者使用公司的maven私服,若是公司沒有私服或者本身學習能夠直接使用阿里雲的鏡像速度仍是不錯的,maven setting.xml中須要添加mirror地址,具體如何配置這裏就不詳細描述了,能夠自行百度,這裏也順便附上阿里雲maven地址:chrome
<mirror> <id>nexus-aliyun</id> <mirrorOf>*</mirrorOf> <name>Nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public</url> </mirror>
配置好了pom後,咱們一塊兒看下自動生成的Application.java這個類至關於咱們程序的main函數入口,這裏再順便介紹下由於springboot集成了Tomcat和Jetty,默認使用Tomcat做爲應用容器,開發者只須要將工程打成jar包直接丟到服務器上就能夠執行了,不須要再單獨部署到was、jboss、tomcat這些應用服務器上。
SpringBootStartApplication.javaapache
@SpringBootApplication public class PollydemoApplication { public static void main(String[] args) { SpringApplication.run(PollydemoApplication.class, args); } }
全部的springboot application啓動類都須要在類級別上加上@SpringBootApplication註解,其餘參數不用任何調整,後續能夠把一些初始化的動做放到該類中進行,目前本例中就不加其餘的啓動加載項了。
這樣一個api網關的架子就搭好了,是否是很簡單!下面咱們就能夠將主要精力聚焦在業務邏輯代碼上了,這裏爲了簡化程序,不會將項目進行深刻的分層設計,在實際項目中,通常都會對項目進行分層設計,若是是api網關,沒有view層可是起碼也會有對外接入decontroller層、處理業務邏輯的service層、處理數據持久化的dao層,同時也會有一些POJO業務實體類,這裏就不詳細展開了,後續也會對互聯網架構設計進行詳細講述,這裏咱們只建立了一個UserController類,裏面只有獲取用戶信息的方法,分別根據參數和請求方式的不一樣用三種方法進行了重寫,下面就來一一道來。編程
先來說述下最簡單的使用get請求用戶信息的實現方式,代碼以下,寫好後直接在Application類點擊右鍵有個RunAs,點擊後會自動運行,運行成功後可使用http發包工具進行測試,這裏推薦使用chrome的postman或者使用firefox的httprequester插件,都是比較簡單的發包工具,get請求的上送爲http://localhost:8081/springboot/getUserByGet?userName=feiweiweiapi
/**
* 用戶
* <p>
* 1.
* </p>
*
* @author pollyLuo
* @version 1.0.0
* @date 2018-09-11
*/
@RestController
@RequestMapping(value = "/user/")
public class UserController {
@ResponseBody
@RequestMapping(value = "getUser", method = RequestMethod.GET)
public String getUser(@RequestParam(value = "userName") String userName) {
return "hello:" + userName;
}
}
指定端口與項目名稱,修改配置文件 (application.properties)
server.port=8090 server.servlet.context-path=/polly-demo
咱們先來回顧一下在 Spring Boot 1.0 中如何更換啓動 Banner,其實都很簡單,只須要在src/main/resources
路徑下新建一個banner.txt
文件,banner.txt
中填寫好須要打印的字符串內容便可。
通常狀況下,咱們會藉助第三方工具幫忙轉化內容,如網站http://www.network-science.de/ascii/
將文字轉化成字符串,網站:http://www.degraeve.com/img2txt.php
能夠將圖片轉化成字符串。
轉載於:https://blog.csdn.net/liutong123987/article/details/79385513