這篇文章主要介紹“Spring Cloud Gateway如何構建”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“Spring Cloud Gateway如何構建”文章能幫助大家解決問題。
我們提供的服務有:網站制作、成都做網站、微信公眾號開發(fā)、網站優(yōu)化、網站認證、利州ssl等。為上千企事業(yè)單位解決了網站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的利州網站制作公司
使用Spring Boot構建一個簡單的Web應用,外界向網關發(fā)送請求后,會轉發(fā)到該應用,pom.xml文件內容如下:
org.springframework.boot spring-boot-starter-parent 2.0.2.RELEASE org.springframework.boot spring-boot-starter-web
編寫啟動類與控制器,提供一個“hello”服務:
@SpringBootApplication @RestController public class ServerApp { public static void main(String[] args) { SpringApplication.run(ServerApp.class, args); } @GetMapping("/hello") public String hello() { System.out.println("調用 hello 方法"); return "hello"; } }
ServerApp中的hello方法,會返回hello字符串,啟動ServerApp,默認使用8080端口,瀏覽器中訪問http://localhost:8080/hello,可看到瀏覽器輸出結果。
新建一個普通的Maven項目,加入Spring Cloud Gateway的依賴,pom.xml內容如下:
org.springframework.boot spring-boot-starter-parent 2.0.0.RELEASE org.springframework.cloud spring-cloud-dependencies Finchley.RC1 pom import org.springframework.cloud spring-cloud-starter-gateway
為網關項目加入配置文件application.yml,修改服務器端口為9000,配置文件內容如下:
server: port: 9000
添加啟動類,配置一個路由定位器的bean,代碼如下:
@SpringBootApplication public class RouterApp { public static void main(String[] args) { SpringApplication.run(RouterApp.class, args); } @Bean public RouteLocator customRouteLocator(RouteLocatorBuilder builder) { Functionfn = new Function () { public Route.Builder apply(PredicateSpec t) { t.path("/hello"); return t.uri("http://localhost:8080"); } }; return builder.routes().route(fn).build(); } }
以上代碼中,使用Spring容器中的RouteLocatorBuilder bean來創(chuàng)建路由定位器,調用Builder的route方法時,傳入java.util.function.Function實例,這是Java8加入的其中一個函數(shù)式接口,我們可以使用函數(shù)式編程來實現(xiàn)以上的代碼,下面的代碼等價于前面的代碼:
@Bean public RouteLocator customRouteLocator(RouteLocatorBuilder builder) { return builder.routes() .route(t -> t.path("/hello") .and() .uri("http://localhost:8080")) .build(); }
以上的兩段代碼設定了一個路由規(guī)則,當瀏覽器訪問網關的http://localhost:9000/hello地址后,就會路由到http://localhost:8080/hello。
除了可以路由到我們本例的8080端口外,還可以路由到其他網站,只需要改變一下PredicateSpec的uri即可,例如將.uri("http://localhost:8080")改為.uri(“http://www.163.com”)。
關于“Spring Cloud Gateway如何構建”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關的知識,可以關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,小編每天都會為大家更新不同的知識點。