delegate

RestTemplate组件:ClientHttpRequestFactory、ClientHttpRequestInterceptor、ResponseExtractor【享学Spring MVC】

浪尽此生 提交于 2020-08-14 13:33:27
每篇一句 做事的人和做梦的人最大的区别就是行动力 前言 本文为深入了解Spring提供的Rest调用客户端RestTemplate开山,对它相关的一些组件做讲解。 Tips:请注意区分RestTemplate和RedisTemplate哦~ ClientHttpRequestFactory 它是个函数式接口,用于根据URI和HttpMethod创建出一个ClientHttpRequest来发送请求~ ClientHttpRequest它代表请求的客户端,该接口继承自HttpRequest、HttpOutputMessage,只有一个ClientHttpResponse execute() throws IOException方法。其中Netty、HttpComponents、OkHttp3,HttpUrlConnection对它都有实现~ // @since 3.0 RestTemplate这个体系都是3.0后才有的 @FunctionalInterface public interface ClientHttpRequestFactory { // 返回一个ClientHttpRequest,这样调用其execute()方法就可以发送rest请求了~ ClientHttpRequest createRequest(URI uri, HttpMethod httpMethod)

Linux离线安装docker&docker-compose

南楼画角 提交于 2020-08-14 08:48:23
1.安装docker 1.1 下载docker离线安装包   下载地址     链接:https://pan.baidu.com/s/1GLXoyQ9ZrFpiq-iAzqdg6A     提取码:nf7s 1.2 安装   1、解压     tar -xvf docker-18.06.1-ce.tgz   2、将解压出来的docker文件内容移动到 /usr/bin/ 目录下     cp docker/* /usr/bin/   3、将docker注册为service     vim /etc/systemd/system/docker.service   4.将下列配置加到docker.service中并保存    [Unit] Description = Docker Application Container Engine Documentation =https: // docs.docker.com After=network- online.target firewalld.service Wants =network- online.target [Service] Type = notify # the default is not to use systemd for cgroups because the delegate issues still #

2020年面向高级开发人员的iOS面试题总结(附答案)

做~自己de王妃 提交于 2020-08-14 06:34:16
前言: 这是许多硅谷公司用来衡量iOS候选人资历水平的一系列问题。 这些问题涉及iOS开发的各个方面,旨在触及对平台的广泛理解。 毕竟,高级开发人员应该能够从头到尾地发布完整的iOS产品。 这绝不是一个详尽的列表,但它可以帮助你为即将到来的技术iOS面试做准备。 目录 你使用的最新版本的iOS是什么?你喜欢什么,为什么? 什么是iOS应用程序,您的代码适合哪里? 你喜欢或不喜欢什么Swift特性?为什么? 内存管理在iOS上如何处理? 你对单身人士有什么了解?你会在哪里使用一个,你不在哪里? 你能否解释一下Delegate和KVO有什么不同? iOS应用中通常使用哪些设计模式? 你知道除了常见的可可模式外还有哪些设计模式? 你能否解释并展示SOLID原则的例子? 你有什么选择在iOS上实现存储和持久性? 你有什么选择在iOS上实现网络和HTTP? 如何以及何时需要在iOS上序列化和映射数据? 在iOS上布置UI有什么选择? 你将如何优化动态大小的表或集合视图的滚动性能? 你将如何在iOS上执行异步任务? 你如何管理依赖关系? 你如何在iOS上调试和配置文件? 你有TDD经验吗?你如何在iOS上进行单元和UI测试? 你编码审查和/或配对计划? 在下面的章节中,我们将讨论每个问题,背后的原因,预期的答案,以及可能为面试官带来危险的答案。 1.你使用的最新版本的iOS是什么?你喜欢什么

ASP.NET Core Blazor WebAssembly 之 .NET JavaScript互调

空扰寡人 提交于 2020-08-14 04:10:27
Blazor WebAssembly可以在浏览器上跑C#代码,但是很多时候显然还是需要跟JavaScript打交道。比如操作dom,当然跟angular、vue一样不提倡直接操作dom;比如浏览器的后退导航。反之JavaScript也有可能需要调用C#代码来实现一些功能,毕竟客户的需求是千变万化的,有的时候只能通过一些hack的手段来实现。 .NET调用JavaScript函数 使用JSRuntime.InvokeVoidAsync调用无返回值的JavaScript函数 显然我们的.NET类库里不会有JavaScript内置的alert方法来显示提示,这里演示下如何调用JavaScript的alert方法: <h3>.net call javascript</h3> <button @onclick="CallJs"> Call alert </button> @inject IJSRuntime jsRuntime @code { private void CallJs() { jsRuntime.InvokeVoidAsync("alert", "this message from .net runtime ."); } } 使用JSRuntime.InvokeVoidAsync调用具有返回值的JavaScript函数 我们在JavaScript环境定义一个加法函数然后

关于C#委托三种调用的分享

丶灬走出姿态 提交于 2020-08-14 01:53:47
一、同步调用 1、同步调用会按照代码顺序来执行 2、同步调用会阻塞线程,如果是要调用一项繁重的工作(如大量IO操作),可能会让程序停顿很长时间,造成糟糕的用户体验,这时候异步调用就很有必要了。 举个栗子: using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Remoting.Messaging; using System.Text; using System.Threading; namespace Test { public delegate int AddHandler( int a, int b); public class Calc { public static int Add( int a, int b) { Console.WriteLine( " 开始计算: " + a + " + " + b); Thread.Sleep( 3000 ); // 模拟该方法运行三秒 Console.WriteLine( " 计算完成! " ); return a + b; } } class Program { static void Main( string [] args) { Console.WriteLine( " ===== 同步调用

使用 IDEA 几分钟就重构了同事800 行"又臭又长" 的类!真香!

你离开我真会死。 提交于 2020-08-13 16:16:23
橙味菌|https://sourl.cn/gvFv33 最近在对已有项目进行扩展的时候,发现要改动的一个类它长 766 行 ,开放了 近 40 个 public 接口 ,我流着泪把它给改完了。为了防止这样的惨剧再次发生在我的身上,我觉得有必要写一篇博客来让广大程序猿同胞知道代码重构的重要性 “ 如果你身边有一个类写上千行的猿,一定要把此文转给 ta 实际项目中,真的不建议类过长以及职责过多,非常不友好!!! 另外,Guide 在经历了几个项目之后,发现大部分情况下一个类一般是不会太长的,除非是这个类职责太多,再或者说自己没有抽取相应的逻辑/工具类方法。 我觉得我们写代码不光是要把功能实现,还一定要对代码的质量比如可读性有较高要求。检验你的代码可读性与否很简单,就是随便拉一个稍微懂点业务的开发过来看你的代码,看看别人能不能很快就看懂。 我当时自己写简单的 RPC 框架的时候,大部分时间实际都花在了方法的命名、类的拆分和包的拆分这三件事情上。 还有一点我印象比较深的是: 好的代码尽量是不需要注释,通过名字就能看清意思。 但是,我在经历了几个项目之后发现,这点真的对开发有太高要求,很难保证,特别是在没有 Code Review 的时候。 团队成员之前达成一个共识很重要!!! 一下子扯了这么多题外话,都是有感而发,我们开始正菜吧! 为什么类不能过长? 类过长——读不通,扩展不通 读不通—

C# 泛型中的数据类型判定与转换

萝らか妹 提交于 2020-08-13 14:20:54
提到类型转换,首先要明确C#中的数据类型,主要分为值类型和引用类型: 1.常用的值类型有:(struct) 整型家族:int,byte,char,short,long等等一系列 浮点家族:float,double,decimal 孤独的枚举:enum 孤独的布尔:bool 2.常用的引用类型有: string,class,array,delegate,interface 值得注意的是,无论是值类型还是引用类型,在C#中都派生于object,没错,这家伙就是万恶之源! 正是因为有了这一特性,于是我们才能通过装箱和拆箱愉快地将这些数据类型在值类型,object,引用类型间反复横跳。 当然了,无论是装箱和拆箱,对于性能都是有消耗的,不到万不得已的时候尽量不要用(虽然我才不管这些,只要我用的爽就行了233) 虽然一般不提倡用object类型作为函数参数,取而代之使用泛型成为首选,那么如何判断泛型参数的具体数据类型并进行有效转换呢? 比如下面的例子: 1 [System.Serializable] 2 public struct Property<T> where T : struct 3 { 4 public string Label { get ; } 5 public T Value { get ; } 6 public PropertyType Type { get ; } 7

Spring 源码解读第七弹!bean 标签的解析

时光怂恿深爱的人放手 提交于 2020-08-13 03:34:51
Spring 源码解读继续。 本文是 Spring 系列第八篇,如果小伙伴们还没阅读过本系列前面的文章,建议先看看,这有助于更好的理解本文。 Spring 源码解读计划 Spring 源码第一篇开整!配置文件是怎么加载的? Spring 源码第二弹!XML 文件解析流程 Spring 源码第三弹!EntityResolver 是个什么鬼? Spring 源码第四弹!深入理解 BeanDefinition 手把手教你搭建 Spring 源码分析环境 Spring 源码第六弹!松哥和大家聊聊容器的始祖 DefaultListableBeanFactory 1.前文回顾 不知道小伙伴们是否还记得,在前面我们讲 Spring 文档加载的时候,涉及到如下一段源码: protected int doLoadBeanDefinitions(InputSource inputSource, Resource resource) throws BeanDefinitionStoreException { try { Document doc = doLoadDocument(inputSource, resource); int count = registerBeanDefinitions(doc, resource); if (logger.isDebugEnabled()) { logger

字节iOS开发岗面试真题(已拿offer)

放肆的年华 提交于 2020-08-13 03:01:34
序言 疫情基本控制,同时面试也渐渐开始了,以下iOS面试题仅供参考,毕竟面试是不可控的,但懂得越多,自然机会越大! 字节一面内容: 1、 自我介绍 2、 介绍一下简历中的一个项目 3、 面向对象的三个要素 4、 多态? 5、 Java,python,OC运行效率孰高? 6、 Property,其中copy如何? 7、 Property(nonatomatic, copy) NSMutableArray有什么问题 8、 Copy和MutableCopy的区别 9、 解释下类别,原理 10、解释下封装,重载; 11、 OC存在多重继承吗? 12、了解表视图吗,解释一下复用原理 13、说明一下表视图的滑动卡顿的优化方法 14、viewDidLoad和viewDidAppear的调用时机(一次和多次的区别); 15、页面间的传值方式有哪些(公有属性,公有方法和协议,block传值,通知,extern全局变量传值, NSUserDefault简单数据存储传值); 16、通知和delegate的区别? 17、 通知的发送和接收是否在同一线程? 18、HTTP和HTTPS区别? 19、OC中多线程一般有几个方案? 20、了解NSURLConnection和Session吗? 21、说一下NSURLSession具体的实现原理 22、http的头部的几个码。; 23、编程题:实现一个二叉树的倒置。

docker服务以及配置文件详解

巧了我就是萌 提交于 2020-08-12 14:22:18
1、dockerd&起动docker后怎样终止。 先寻找dockerd运作的pid cat/etc/run/docker.pid 例如是pid是123 kill-9pid 删除文件夹 rm/etc/run/docker.pid 2、设定启动自动启动 配备service vi/usr/lib/systemd/system/docker.service 复制代码 [Unit] Description=DockerApplicationContainerEngine Documentation= https://docs.docker.com After=network-online.targetfirewalld.service Wants=network-online.target [Service] Type=notify ExecStart=/usr/bin/dockerd ExecReload=/bin/kill-sHUP$MAINPID LimitNOFILE=infinity LimitNPROC=infinity TimeoutStartSec=0 Delegate=yes KillMode=process Restart=on-failure StartLimitBurst=3 StartLimitInterval=60s [Install] WantedBy