总结一下前两天面试没回答好的问题,如有错误,请各位大佬指正:
1. openfeign的底层实现原理?
2.状态机怎么使用?能解决什么问题
1、openfeign的底层实现原理
OpenFeign是一个基于Java的HTTP客户端框架,底层实现的原理主要是利用Java的反射机制和动态代理技术。在使用OpenFeign时,用户只需要定义接口,并通过注解的方式描述HTTP请求的信息,然后OpenFeign会根据这些接口和注解信息动态生成代理类,最终实现对HTTP请求的调用。
具体来讲,OpenFeign会根据用户定义的接口和注解信息生成一个动态代理类,该代理类会在方法调用时根据注解信息构建HTTP请求并发送到对应的服务端。OpenFeign还支持负载均衡和服务发现等功能,可以通过配置不同的负载均衡策略和服务发现机制来实现对服务端的调用。
总的来说,OpenFeign的底层实现原理是利用Java的反射和动态代理技术来生成HTTP请求的代理类,并通过这些代理类实现对服务端的调用。这种动态生成代理类的方式使得用户在使用OpenFeign时更加灵活和方便,能更好地实现对服务端的调用。
详细:
OpenFeign 使用了动态代理技术来封装远程服务调用的过程。服务的名称、接口类型、访问路径已经通过注解做了声明。OpenFeign 通过解析这些注解标签生成一个“动态代理类”,这个代理类会将接口调用转化为一个远程服务调用的 Request,并发送给目标服务。
当我们项目启动时,会通过@EnableFeignClients(basePackages = "com.shepherd.mallorder")
扫描相应包路径下的feignClient,然后使用动态代理技术生成代理类注入到spring容器之中,这样当我们使用feign接口方法发起远程调用,其实就是使用生成的动态代理类去实现请求。
2、状态机
目前还没找到很全面,完善的文章,哪位大哥直个路,感谢
参考:https://blog.csdn.net/weixin_41821642/article/details/129874394