200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > springcloud feign 服务调用其他服务_springCloud微服务项目 构建公共的feign调用

springcloud feign 服务调用其他服务_springCloud微服务项目 构建公共的feign调用

时间:2019-09-06 03:32:32

相关推荐

springcloud feign 服务调用其他服务_springCloud微服务项目 构建公共的feign调用

在微服务项目中加入有一个微服务的接口,很多其他的微服务都需要调用它,那么我们可以写在公共的项目中,而不需要每个微服务都建立一个相应 的feign

1.先在common 公共项目中建一个公共feign调用的接口(注意这儿用的是fallbackFactory,而不是fallback)

2.然后定义一个降级处理的类 (实现FallbackFactory)用来构建公共调用的接口

3.然后在resource目录下创建META-INF/spring.factories

(这是一个springboot默认创建bean的文件)内容是:

org.springframework.boot.autoconfigure.EnableAutoConfiguration=

com.xxx.factory.DataProducerFallbackFactory,

com.xxx.util.IdWorker,

com.xxx.util.LogUtil,

com.xxx.exception.GlobalExceptionHandler

只需要将DataProducerFallbackFactory 加入spring容器中,因为接口已经在DataProducerFallbackFactory 类中new出并使用。

4.在common项目下再自定义一个feign调用的注解

import org.springframework.cloud.openfeign.EnableFeignClients;

import java.lang.annotation.Documented;

import java.lang.annotation.ElementType;

import java.lang.annotation.Retention;

import java.lang.annotation.RetentionPolicy;

import java.lang.annotation.Target;/*** 自定义feign注解* 添加basePackages路径**@authorlhm*/

@Target(ElementType.TYPE)

@Retention(RetentionPolicy.RUNTIME)

@Documented

@EnableFeignClients

public @interface EnableCommonFeignClients

{

String[] value() default {};

String[] basePackages() default { "http://com.xxx" };//这里添加自己项目的包扫描路径

Class<?>[] basePackageClasses() default {};

Class<?>[] defaultConfiguration() default {};

Class<?>[] clients() default {};

}

5.最后在其他微服务的启动类中添加该自定义注解:

就可以在其他微服务直接使用( Autoware )这个公共的feign调用了。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。