小程序跳转小程序

重点需要在配置文件app.json 添加 属性navigateToMiniProgramAppIdList:[‘appid1′,’appid2’]最低10个 官方文档链接:https://developers.weixin.qq.com/miniprogram/dev/reference/configuration/app.html 一、navigateToMiniProgram 官方文档链接:https://developers.weixin.qq.com/miniprogram/dev/api/wx.navigateToMiniProgram.html image.gif 二、navigator 官方文档链接:https://developers.weixin.qq.com/miniprogram/dev/component/navigator.html 作者:MicKing_9982链接:https://www.jianshu.com/p/8a8746a00f84来源:简书著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

Spring WebFlux获取Request对象工具

3.1 WebFilter获取并保存 首先,在WebFilter中获取Request对象并保存,代码如下: @Configuration@ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.REACTIVE)public class ReactiveRequestContextFilter implements WebFilter {@Overridepublic Mono<Void> filter(ServerWebExchange exchange, WebFilterChain chain) {ServerHttpRequest request = exchange.getRequest();return chain.filter(exchange).subscriberContext(ctx -> ctx.put(ReactiveRequestContextHolder.CONTEXT_KEY, request));}} 从ServerWebExchange中获取到ServerHttpRequest对象,再通过put方法把它放进Context里。 3.2 工具类Holder 实现一个工具类来提供静态方法,在Filter后的任何场景都可以使用: public class ReactiveRequestContextHolder {public static final Class<ServerHttpRequest> CONTEXT_KEY = ServerHttpRequest.class; public static Mono<ServerHttpRequest> getRequest() {return Mono.subscriberContext().map(ctx -> ctx.get(CONTEXT_KEY));}} 3.3 在Controller中使用 我们尝试在Controller中使用ReactiveRequestContextHolder来获取Request: @RestControllerpublic class GetRequestController { @RequestMapping(“/request”)public Mono<String> getRequest() {return […]

dubbo输入参数的校验

dubbo的rest支持采用Java标准的bean validation annotation(JSR 303)来做输入校验http://beanvalidation.org/ 为了和其他dubbo远程调用协议保持一致,在rest中作校验的annotation必须放在服务的接口上,例如: 当然,在很多其他的bean validation的应用场景都是将annotation放到实现类而不是接口上。把annotation放在接口上至少有一个好处是,dubbo的客户端可以共享这个接口的信息,dubbo甚至不需要做远程调用,在本地就可以完成输入校验。 然后按照dubbo的标准方式在XML配置中打开验证:

不要使用 dubbo.properties 文件配置,推荐使用对应 XML 配置

Dubbo 中所有的配置项都可以配置在 Spring 配置文件中,并且可以针对单个服务配置。 如完全不配置则使用 Dubbo 缺省值,详情请参考 Dubbo配置参考手册 中的说明。 dubbo.properties 中属性名与 XML 的对应关系 应用名 dubbo.application.name<dubbo:application name=”myalibaba” > 注册中心地址 dubbo.registry.address<dubbo:registry address=”11.22.33.44:9090″ > 调用超时 dubbo.service.*.timeout可以在多个配置项设置超时 timeout,由上至下覆盖(即上面的优先)5,其它的参数(retries、loadbalance、actives等)的覆盖策略与 timeout 相同。示例如下:提供者端特定方法的配置<dubbo:service interface=”com.alibaba.xxx.XxxService” > <dubbo:method name=”findPerson” timeout=”1000″ /> </dubbo:service> 提供者端特定接口的配置<dubbo:service interface=”com.alibaba.xxx.XxxService” timeout=”200″ /> 服务提供者协议 dubbo.service.protocol、服务的监听端口 dubbo.service.server.port<dubbo:protocol name=”dubbo” port=”20880″ /> 服务线程池大小 dubbo.service.max.thread.threads.size<dubbo:protocol threads=”100″ /> 消费者启动时,没有提供者是否抛异常 alibaba.intl.commons.dubbo.service.allow.no.provider<dubbo:reference interface=”com.alibaba.xxx.XxxService” check=”false” />

dubbo监控配置推荐

使用固定端口暴露服务,而不要使用随机端口这样在注册中心推送有延迟的情况下,消费者通过缓存列表也能调用到原地址,保证调用成功。 使用 Dubbo Admin 监控注册中心上的服务提供方使用 Dubbo Admin 监控服务在注册中心上的状态,确保注册中心上有该服务的存在。 服务提供方可使用 Dubbo Qos 的 telnet 或 shell 监控项监控服务提供者端口状态:echo status | nc -i 1 20880 | grep OK | wc -l,其中的 20880 为服务端口 服务消费方可通过将服务强制转型为 EchoService,并调用 $echo() 测试该服务的提供者是可用如 assertEqauls(“OK”, ((EchoService)memberService).$echo(“OK”));