当前位置: 首页 > news >正文

青岛网站建设服务中心wordpress转换tpecho

青岛网站建设服务中心,wordpress转换tpecho,深圳博惠seo,论坛网站怎么推广在微服务架构体系中远程RPC调用主要包括Dubbo与Http调用两个大类#xff0c;由于Dubbo拥有服务注册中心#xff0c;并且起服务的命名非常规范#xff0c;使用包名.类名.方法名进行描述。 而http调用通常都是使用httpclient等相关类库#xff0c;这些在使用上并没有问题由于Dubbo拥有服务注册中心并且起服务的命名非常规范使用包名.类名.方法名进行描述。 而http调用通常都是使用httpclient等相关类库这些在使用上并没有问题但API都是分散在整个工程的各个地方如果HTTP调用也可以使用类似Dubbo服务的表示方法采用声明式定义就好了。 在开源的世界中只有想不到没有找不到为了解决Feign的声明式服务化管理Feign框架应运而生本文主要介绍如何使用Feign实现Http服务声明化管理与调用。 1.什么是Feign Feign是一个http请求调用的轻量级框架可以以Java接口注解的方式调用Http请求。Feign通过注解将请求模板化当实际调用的时候传入参数根据参数再应用到请求上进而转化成真正的请求封装了http调用流程。 2、快速入门实例 2.1定义客户端 首先要引入Feign的maven依赖如下图所示 dependencygroupIdcom.netflix.feign/groupIdartifactIdfeign-core/artifactIdversion8.18.0/version/dependency 2.2 定义服务调用API(类似Dubbo API) 服务调用的API声明代码如下所示 FeignClient public interface HelloControllerApi {RequestLine(GET /api/hello?name{name})String hello(Param(value name) String name); } 这里的要点是使用FeignClient进行声明。声明后就可以通过HelloControllerApi进行远程HTTP调用示例代码如下 public class HelloControllerApiTest {private HelloControllerApi service;Beforepublic void before(){service Feign.builder().options(new Request.Options(1000, 3500)).retryer(new Retryer.Default(5000, 5000, 3)).target(HelloControllerApi.class, http://127.0.0.1:8080);}Testpublic void hello(){// 调用http://127.0.0.1:8080/api/hello?nameworld 的http接口System.out.println(service.hello(world));}} 当然需要在调用方的启动类上增加EnableFeignClients(defaultConfiguration FeignConfiguration.class)注解。 2.3定义服务端 服务端与Feign并无关系主要按照API的方式实现即可服务端实现代码如下所示 Controller RequestMapping(value api) public class HelloController {RequestMapping(value /hello, method {RequestMethod.GET})ResponseBodypublic String list(RequestParam String name) {return Hello name;} }//启动类 SpringBootApplication(scanBasePackages {com.vhicool.manager}) public class ManagerApplication {public static void main(String[] args) {SpringApplication.run(ManagerApplication.class, args);} } 3.实现签名校验 上述只是简单实用Feign,接下来以实现签名校验为例展示Feign的扩展机制。 签名验证是最常见的安全机制首先在客户端定义一个签名拦截器用于生成签名信息示范代码如下图所示 public class AuthRequestInterceptor implements feign.RequestInterceptor {private TokenService tokenService;public AuthRequestInterceptor(TokenService tokenService) {this.tokenService tokenService;}Overridepublic void apply(RequestTemplate template) {template.header(token, tokenService.getToken());}} 并且在Feign的全局配置文件中创建对应的拦截器示例代码如下 public class FeignConfiguration {Beanpublic RequestInterceptor authRequestInterceptor(ResourceIdentity resourceIdentity) {AuthRequestInterceptor authRequestInterceptor new AuthRequestInterceptor(resourceIdentity);authRequestInterceptor.setErrorEncodeType(errorEncodeType);return authRequestInterceptor;} } 同时在服务端获取token并对token进行校验示例代码如下 Component public class AuthFilter implements Filter {Autowiredprivate TokenService tokeService;Overridepublic void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {String remoteToken ((HttpServletRequest) servletRequest).getHeader(token);if(!tokeService.valid(token)) {//异常处理逻辑return;}filterChain.doFilter(servletRequest, servletResponse);} } 4.服务端自动生成Feign 上面的示例虽然实现了服务接口的声明式管理但调用端、客户端并没有显示的约束关系接下来展示如何使用客户端、服务端使用继承方式定义服务调用API。 例如要实现如下图的效果 原生的Feign无法实现该效果我们需要使用OpenFeign类库两者之间的对比如下图所示 接下来详细介绍具体实现方法。 4.1 提取公共API 首先使用一个模块定义公共API,需要引入maven依赖代码示例如下所示 dependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependency/dependencies 接下来定义公共的服务接口客户端、服务端都需要实现该接口公共服务端接口定义如下 public interface IUserController {RequestMapping(value user/list-all, method {RequestMethod.GET})ListString listAll(RequestParam String name); } 4.2 服务端实现公共API 首先需要添加相应的maven依赖代码如下 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdcom.vhicool/groupIdartifactIdfeign-api/artifactIdversion1.0-SNAPSHOT/versionscopecompile/scope/dependency 服务端采用继承方式实现具体代码如下所示 Controller RequestMapping public class UserController implements IUserController {OverrideResponseBodypublic ListString listAll(String name) {ArrayListString list new ArrayList();list.add(达菲);list.add(olu);list.add(name);return list;} } 4.3 客户端实现公共API 客户端首先同样需要增加相应的依赖具体代码如下所示 dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-openfeign/artifactIdversion2.1.5.RELEASE/version/dependencydependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.12/versionscopecompile/scope/dependencydependencygroupIdcom.vhicool/groupIdartifactIdfeign-api/artifactIdversion1.0-SNAPSHOT/versionscopecompile/scope/dependency 客户端服务调用类需要继承公共API: FeignClient(value user, url http://localhost:8080) public interface UserApi extends IUserController { } 同时客户端启动类需要增加EnableFeignClients注解具体示例代码如下所示 SpringBootApplication EnableFeignClients public class ManagerApplication {public static void main(String[] args) {SpringApplication.run(ManagerApplication.class, args);} } 同样基于Springboot编程方式可以为Feign配置全局参数具体如下 Configuration public class FeignConfiguration {/*** 请求超时时间* return*/Beanpublic Request.Options options() {return new Request.Options(2000, 3500);}//拦截器等定义 } 接下来客户端就可以用如下方式进行调用 RunWith(SpringRunner.class) SpringBootTest public class UserControllerTest {Autowiredprivate UserApi userApi;Testpublic void listAll() {System.out.println(userApi.listAll(饼饼));} } 当前项目编译的jar包类也已经被替换成我们自定义的类目标达成。 善用工具 成功的前端工程师很会善用工具这些年低代码概念开始流行像国外的 Mendix国内的 JNPF这种新型的开发方式图形化的拖拉拽配置界面并兼容了自定义的组件、代码扩展确实在 B 端后台管理类网站建设中很大程度上的提升了效率。 开源地址JNPF体验中心 代码量少系统的稳定性和易调整性都会得到一定的保障。基于代码生成器可一站式开发多端使用 Web、Android、IOS、微信小程序。代码自动生成后可以下载本地进行二次开发有效提高整体开发效率。同时支持多种云环境部署、本地部署给予最大的安全保障可以快速搭建适合自身应用场景的产品。
http://www.dnsts.com.cn/news/39315.html

相关文章:

  • 紫色风格网站express 网站开发
  • 美橙建站之星怎么样网站开发都用什么
  • 网站推广策划方案毕业设计WordPress的jquery
  • seo在线培训机构排名长沙seo优化服务
  • 网站建设的需求文档虚拟主机技术
  • 望野千枝叶seo推广的方法
  • wordpress博客整站源码怎么做网站超市
  • 网站建设规划书模板中国小康建设网是骗子网站吗?
  • 用fullpage做的网站建筑模型设计网站建设
  • 免费下载软件的网站wordpress弹出公告
  • 建设部总监继续教育网站网站建设夬金手指排名壹柒
  • 做网站学哪种代码好wordpress 百度云图安装
  • 嘉定华亭网站建设商业网站设计与制作
  • 查询网站流量的网址网站建设主要营销内客
  • 微信 html5 网站wordpress后台上不去
  • 什么网站做玩具的比较多网站建设的付款方式
  • wordpress如何防止被采集网站seo啥意思怎么做
  • wordpress ajax 文件做移动网站优化软
  • 苏州外贸网站公众号怎么做微网站
  • 营销类型的公司网站中国建设银行网站企业
  • app 游戏网站建设咸阳做网站xymokj
  • 基本原理网站建设有没有一种网站做拍卖厂的
  • 如何做学校网站app百度权重等级
  • 网站中客户的权限设置上传的网站打不开怎么办
  • 美乐乐网站源码深圳品牌策划公司排行榜
  • 山东住房和城乡建设局网站擦边球做网站挣钱
  • 网站建设的作业模板建设网站的法律声明
  • 企业网站页面宽哪里设置手机网站优化 工具
  • 网站seo啥意思怎么做360浏览器直接进入网站
  • 合肥做网站价格是多少制作应用的网站