1、RequestInterceptor
微服务之前调用的时候请求不会传递参数,通过实现RequestInterceptor接口,完成对所有的Feign请求,传递请求头和请求参数。
定义
public class BaseFeignTenantInterceptor implements RequestInterceptor {
@Override
public void apply(RequestTemplate requestTemplate) {
if (StrUtil.isBlank(TenantContextHolder.getTenantId())) {
return;
}
requestTemplate.header(CommonConstants.TENANT_ID, TenantContextHolder.getTenantId());
}
}
注入:
@Configuration
public class BaseFeignTenantConfiguration {
@Bean
public RequestInterceptor baseFeignTenantInterceptor() {
return new BaseFeignTenantInterceptor();
}
}
自动配置
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.joolun.cloud.common.data.cache.RedisTemplateConfig,\
com.joolun.cloud.common.data.cache.RedisCacheManagerConfig,\
com.joolun.cloud.common.data.cache.RedisCacheAutoConfiguration,\
com.joolun.cloud.common.data.tenant.TenantConfigProperties,\
com.joolun.cloud.common.data.datascope.DataScopeProperties,\
com.joolun.cloud.common.data.tenant.TenantContextHolderFilter,\
com.joolun.cloud.common.data.tenant.BaseFeignTenantConfiguration,\
com.joolun.cloud.common.data.mybatis.MybatisPlusConfig,\
com.joolun.cloud.common.data.datascope.shop.ShopScopeProperties,\
com.joolun.cloud.common.data.resolver.WebMvcConfig