一 新建自定义注解MyUrl
需要JAVA Spring Cloud大型企业分布式微服务云构建的B2B2C电子商务平台源码请加企鹅求求 :二一四七七七五六三三
package org.crazyit.cloud.contract;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
//这个注解只能定义方法
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface MyUrl {
//为注解配置两个属性
String url();
String method();
}
二 新建接口,使用MyUrl注解
package org.crazyit.cloud.contract;
public interface ContractClient {
@MyUrl(url = \"/hello\", method = \"GET\")
public String hello();
}
三 定义注解翻译器
package org.crazyit.cloud.contract;
import java.lang.annotation.Annotation;
import java.lang.reflect.Method;
import feign.Contract. Contract;
import feign.Method data;
public class MyContract extends Contract {
@Override
protected void processAnnotationOnClass(Method data data, Class<?> clz) {
// 处理类级别注解
}
@Override
protected void processAnnotationOnMethod(Method data data,
Annotation annotation, Method method) {
// 注解是MyUrl类型的,才处理
if(MyUrl.class.isInstance(annotation)) {
MyUrl myUrl = method.getAnnotation(MyUrl.class);
String url = myUrl.url();
String httpMethod = myUrl.method();
data.template().method(httpMethod);
data.template().append(url);
}
}
@Override
protected boolean processAnnotationsOnParameter(Method data data,
Annotation[] annotations, int paramIndex) {
// 处理参数级别注解
return false;
}
}
四 测试类
package org.crazyit.cloud.contract;
import org.crazyit.cloud.jaxrs.RsClient;
import feign.Feign;
import feign.jaxrs.JAXRSContract;
public class ContractMain {
public static void main(String[] args) {
ContractClient client = Feign.builder()
.contract(new MyContract())
.target(ContractClient.class,
\"http://localhost:8080\");
String result = client.hello();
System.out.println(result);
}
}
继续阅读与本文标签相同的文章
上一篇 :
关于EA重返Steam平台的一些细节
下一篇 :
任家潮:勇当节能先锋
-
担心失去你的男人,才会给你这些“特权”,你懂吗?
2026-05-18栏目: 教程
-
Yotta专业存储设备芝麻云节点服务器IDC数据机房托管的优势
2026-05-18栏目: 教程
-
Edge逐步融入Fluent Design元素:新版颜色筛选器控件上线
2026-05-18栏目: 教程
-
阿里云服务器突发性能实例t5配置性能使用场景及注意事项
2026-05-18栏目: 教程
-
Square为澳大利亚餐馆提供定制平台!
2026-05-18栏目: 教程
