1.加入eureka-client和zuul啟動器
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-zuul</artifactId>
</dependency>
2.添加application.yml相關(guān)配置
server:
port: 10010
spring:
application:
name: xxxx-gateway
eureka:
client:
service-url:
defaultZone: http://localhost:10086/eureka
registry-fetch-interval-seconds: 5
zuul:
prefix: /api
routes:
item-service: /item/** #路由到商品的微服務(wù)
search-service: /search/** #路由到搜索微服務(wù)
- 添加啟動類
@SpringBootApplication
@EnableDiscoveryClient
@EnableZuulProxy
public class GatewayApplication {
public static void main(String[] args) {
SpringApplication.run(GatewayApplication.class);
}
}
- 用網(wǎng)關(guān)處理跨越相關(guān)請求
@Configuration
public class CorsConfiguration {
@Bean
public CorsFilter corsFilter() {
// 初始化cors配置對象
CorsConfiguration corsConfiguration = new CorsConfiguration();
// 允許跨域的域名,如果要攜帶cookie,不能寫*, *代表所有域名都可以跨域訪問
corsConfiguration.addAllowedOrigin("http://manage.xxxx.com");
corsConfiguration.addAllowedOrigin("http://www.xxxx.com");
corsConfiguration.setAllowCredentials(true); //設(shè)置是否允許攜帶cookie
corsConfiguration.addAllowedMethod("*"); // 代表所有的請求方法, GET, POST, PUT, Delete
corsConfiguration.addAllowedHeader("*"); // 允許攜帶任何頭信息
// 初始化cors配置源對象
UrlBasedCorsConfigurationSource configurationSource = new UrlBasedCorsConfigurationSource();
configurationSource.registerCorsConfiguration("/**", corsConfiguration);
// 返回corsFilter實(shí)例, 參數(shù): cors配置源對象
return new CorsFilter(configurationSource);
}
}