parent
41b51974db
commit
2dd322f07f
@ -0,0 +1,15 @@
|
|||||||
|
package com.github.cloud.examples;
|
||||||
|
|
||||||
|
import com.github.cloud.openfeign.FeignClient;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author derek(易仁川)
|
||||||
|
* @date 2022/4/9
|
||||||
|
*/
|
||||||
|
@FeignClient("provider-application")
|
||||||
|
public interface EchoService {
|
||||||
|
|
||||||
|
@PostMapping("echo")
|
||||||
|
String echo();
|
||||||
|
}
|
@ -0,0 +1,46 @@
|
|||||||
|
package com.github.cloud.openfeign.support;
|
||||||
|
|
||||||
|
import feign.Contract;
|
||||||
|
import feign.MethodMetadata;
|
||||||
|
import feign.Request;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
|
||||||
|
import java.lang.annotation.Annotation;
|
||||||
|
import java.lang.reflect.Method;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* feign支持Spring MVC的注解
|
||||||
|
*
|
||||||
|
* @author derek(易仁川)
|
||||||
|
* @date 2022/4/9
|
||||||
|
*/
|
||||||
|
public class SpringMvcContract extends Contract.BaseContract {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void processAnnotationOnClass(MethodMetadata data, Class<?> clz) {
|
||||||
|
//TODO 解析接口注解
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void processAnnotationOnMethod(MethodMetadata data, Annotation annotation, Method method) {
|
||||||
|
//解析方法注解
|
||||||
|
//解析PostMapping注解
|
||||||
|
if (annotation instanceof PostMapping) {
|
||||||
|
PostMapping postMapping = (PostMapping) annotation;
|
||||||
|
data.template().method(Request.HttpMethod.POST);
|
||||||
|
String path = postMapping.value()[0];
|
||||||
|
if (!path.startsWith("/") && !data.template().path().endsWith("/")) {
|
||||||
|
path = "/" + path;
|
||||||
|
}
|
||||||
|
data.template().uri(path, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
//TODO 解析其他注解
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected boolean processAnnotationsOnParameter(MethodMetadata data, Annotation[] annotations, int paramIndex) {
|
||||||
|
//TODO 解析参数
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in new issue