Feign问题总结

文章讨论了Java中接口实现时注解不被继承的特性,注解作为元数据不影响方法行为。同时对比了Feign客户端使用HttpURLConnection和OkHttp的优劣,指出选择应基于性能、兼容性和功能需求。
摘要由CSDN通过智能技术生成

(1)实现接口时参数列表中的注解映射并不会继承 

        在实现接口时,如果参数列表中包含注解,那么这些注解不会被子类或实现类继承。这是因为注解本身并不是方法的一部分,而是一种元数据,用于提供关于方法参数或返回值的附加信息。

        在Java中,注解可以用于方法参数、返回值、类、方法、字段等等,它们提供了一种声明式的方式来描述这些元素的属性或行为。注解的使用可以帮助代码编写者更好地理解代码,也可以提供一些额外的功能,例如生成文档、验证参数等等。

        但是需要注意的是,注解并不是方法的一部分,也不会影响方法的行为。因此,即使在接口中声明了带注解的方法,子类或实现类也不会自动继承这些注解。如果需要在子类或实现类中使用相同的注解,需要手动在子类或实现类的方法上添加相应的注解。

        例如,下面是一个带注解的接口:

public interface MyInterface {
    void doSomething(@NotNull String arg1, @Min(0) int arg2);
}

        这个接口中有两个参数,分别使用了@NotNull和@Min注解。如果一个实现类实现了这个接口,它并不会自动继承这些注解,需要手动在实现类的方法上添加相应的注解,例如: 

public class MyImpl implements MyInterface {
    @Override
    public void doSomething(@NotNull String arg1, @Min(0) int arg2) {
        // 实现方法
    }
}

        在这个实现类中,重写的方法也带有@NotNull和@Min注解,这样就可以让编译器和静态分析工具在编译时对方法参数进行验证。 

 (2)Feign的URLconnection和HttpFeign哪个更好? 

        对于使用Java标准库中的HttpURLConnection发送HTTP请求的Feign客户端和使用第三方HTTP客户端库OkHttp发送HTTP请求的HttpFeign客户端,哪个更好取决于具体的需求和应用场景。

        HttpURLConnection是Java标准库中自带的HTTP客户端,使用URLConnectionClient发送HTTP请求可以获得良好的跨平台兼容性,无需引入额外的依赖库,也不需要进行特殊的配置。然而,相对于第三方HTTP客户端库,HttpURLConnection的性能和功能可能会受到一些限制,例如请求重试、连接池、缓存等方面。

        OkHttp是一个广泛使用的第三方HTTP客户端库,使用HttpFeign发送HTTP请求可以获得更好的性能和可靠性,同时还提供了更丰富的功能和配置选项。但是,使用第三方HTTP客户端库需要引入额外的依赖库,并且需要进行一定的配置。

        因此,选择使用哪个底层HTTP客户端实现应该综合考虑应用场景、性能需求、兼容性等因素。在一些对性能要求不高、跨平台兼容性要求较高的场景下,可以考虑URLConnectionClient;在一些对性能要求较高、需要较为复杂的功能和配置的场景下,可以考虑使用HttpFeign。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值