一.創建網關服務項目
新建一個網關項目模塊webshop-gateway,如下:
選擇引入spring cloud gateway依賴:
新建成功,如下:
二.完善網關服務配置信息
修改webshop-gateway的pom.xml文件,統一spring boot版本以及spring cloud版本,同時導入webshop-common依賴:
由於網關服務也是需要註冊到註冊中心的,所以啓動類加上開啓服務註冊與發現的註解@EnableDiscoveryClient,同時還要排除有關數據源的自動配置,否則啓動會報錯,如下:
刪除application.properties文件,新建application.yml文件(習慣了用yml,使用application.properties文件也是可以的),補充註冊中心地址以及端口信息:
接着啓動webshop-gateway服務,雖然啓動是成功的,
但是還是會有些異常信息爆出來,比如這樣的異常信息:
這是由於項目統一引用了配置中心的依賴,而又沒加上配置中心相關的配置信息,所以還是在nacos上爲網關服務也新建一個相關的命名空間和配置集,如下:
接着在webshop-gateway項目下新建配置中心所需的配置文件bootstrap.properties,補充上配置信息,如下:
接着重啓webshop-gateway服務就不會再報以上的異常了。
三.測試下網關的功能
在webshop-gateway服務的application.yml文件中添加一個路由規則,如下:
這個規則表示,路徑有參數url等於baidu這個值的,就會跳轉到https://www.baidu.com。
重啓webshop-gateway服務,瀏覽器訪問http://localhost:88/hello?url=baidu,結果如下:
成功路由。
spring cloud gateway有好多的斷言可以用,斷言結果決定了是否要跳轉到指定的uri,具體要使用哪種斷言,根據來業務選擇,一般都是參考官網,即拿即用。