Posts List

Spring Bean条件创建

我们的应用可能部署在多个环境,有些依赖是环境隔离的,我们可能需要对部分Bean对象的创建是基于一些条件判断来生成。 Spring Bean有条件创建的机制,比如ConditionalOnProperty可以基于应用配置项来决定是否生成Bean对象。 比如: 1、application.properties // 是否云单元 cloudUnit = true 2、ImMan ...

善战者无赫赫之功,善医者无煌煌之名

中国有句古话:“善战者无赫赫之功,善医者无煌煌之名。” 这两句话的意思是说:“善于打仗的人往往没有什么显赫的功绩,而好的医生没有很大的名声。” 扁鹊故事 扁鹊是春秋战国时的名医,他有两个哥哥,三兄弟都精通医术。 魏文王曾问扁鹊:“你们家兄弟三人,都精于医术,谁的医术是最好的呢?” 扁鹊回答:“大哥最好,二哥差些,我是三人中最差的 ...

Java Lombok使用

本文整理一下Lombok插件使用的常用方式。 Lombok是一款Java开发插件,可以通过它定义的注解来精简冗长和繁琐的代码,主要针对简单的Java模型对象(POJO)。好处就显而易见了,可以节省大量重复工作,特别是当POJO类的属性增减时,需要重复修改的Getter/Setter、构造器方法、equals方法和toSt ...

道法术器

“道、法、术、器”出自老子的《道德经》,是道家传承所强调的四个层面。 所谓“道”即万物变迁循环中亘古不变的规律,是灵魂,是方向,是指导思想;“法”是在探求“道”的过程中经过实践思考、归纳总结出的规则体系和方法原则;“术”是在规则体系指导下的具体操作技术,只要“道、法”不变,“术”可千变万化;“器”是指有形的物质或有形的工 ...

归纳与演绎

归纳与演绎是写作过程中逻辑思维的两种方式。人类认识活动,总是先接触到个别事物,而后推及一般,又从一般推及个别,如此循环往复,使认识不断深化。 归纳就是从个别到一般,演绎则是从一般到个别。 归纳和演绎是科学研究中运用得较为广泛的逻辑思维方法。马克思主义认识论认为,一切科学研究都必须运用到归纳和演绎的逻辑思维方法。 演绎推理的三 ...

MySQL 时间函数

本文整理mysql常用的时间函数,针对日期、时间戳、字符串类型之间的转换操作。 获得当前日期时间 函数:now(),返回当前时间,类型datetime mysql> select now(); +---------------------+ | now() | +---------------------+ | 2020-11-15 14:57:14 | +---------------------+ 获得当前时间戳函数 函数:current_timestamp() mysql> select current_timestamp; +---------------------+ | current_timestamp | +---------------------+ | 2020-11-15 14:58:05 | +---------------------+ 日期时间转为字符串 函数:date_format(date,f ...

Java CompletableFuture使用

Future是Java 5添加的类,用来描述一个异步计算的结果。可以使用isDone方法检查计算是否完成,或者使用get阻塞住调用线程,直到计算完成返回结果,也可以使用cancel方法停止任务的执行。 本文介绍CompletableFuture的使用,从Java 8引入,它提供了非常强大的Future的扩展功能,可以帮助我们 ...

《非暴力沟通》读书笔记

非暴力沟通方式通过 观察、感受、需要、请求 四个要素,帮助人们扭转负面的思维趋势,用温和的方式化解人际冲突,并主动根据需要和价值观来选择生活。 一、让爱融入生活 非暴力沟通的要素 观察: 留意发生的事情。(清楚的表达观察结果,而不判断或评估) 感受:我的感受如何。(表达感受,喜怒哀乐) 需要:哪些需要导致那样的感受。(或价值,愿望等) ...

架构设计原则SOLID

这篇文章介绍下著名的设计原则:SOLID 单一职责是所有设计原则的基础 开闭原则是设计的终极目标 里氏替换原则强调的是子类替换父类后程序运行时的正确性,它用来帮助实现开闭原则 而接口隔离原则用来帮助实现里氏替换原则,同时它也体现了单一职责 依赖倒置原则是过程式编程与OO编程的分水岭,同时它也被用来指导接口隔离原则 单一职责原则SI ...

人生三个十年的规划和目标

从25岁到55岁,人生三个十年的规划和目标。这3个10年,几乎决定了你的整个职业生涯和生活质量。 看黑幼龙的采访。七十岁的老人,看他的经历,验证了我最近对于人生进入职涯后三个十年的一个思考。 第一个十年是积累的十年(25-35) 最开始的起点重要也不重要,但要尽量选择一个可以看清前景的行业,当然如果是行业食物链中越往上越好。 ...

说说降级、熔断、限流

当我们的系统的访问量突然剧增,大量的请求涌入过来,最典型的就是秒杀业务了,我们可能会知道会有一波高峰,这时候该如何处理? 而且现在很多情况我们还需要调用第三方接口例如支付等,因此我们还得考虑如果第三方那边出问题了,返回异常的慢,我们系统该如何处理。 常见的处理方式有三种:降级、熔断、限流。 降级 降级也就是服务降级,当我们的服 ...

Java 流数据读写

从输入流里读取字节数据 read()方法要么返回下一次从流里读取的字节数(0到255,包括0和255),要么在达到流的末端时返回-1。 InputStream in = (...); try { while (true) { int b = in.read(); if (b == -1) break; (... process b ...) } } finally { in.close(); } 从输入流里读取块数据 read()方法不一定会填满整个buf,所以你必须在处理逻辑中考虑返回的长度。 InputStream in = (...); try { byte[] buf = new byte[100]; while (true) { int n = ...

Java Comparable和Comparator

Comparable可以认为是一个内比较器,实现了Comparable接口的类有一个特点,就是这些 类是可以和自己比较的,至于具体和另一个实现了Comparable接口的类如何比较,则依赖compareTo方法的实现,compareTo方法也被称为自然比较方法。 class Person implements Comparable<Person> { String firstName; String lastName; int birthdate; // Compare by firstName, break ties by lastName, // finally break ties by birthdate public int compareTo(Person other) { ...

iOS Charles抓包

在iOS应用开发过程中,通过抓包调试服务接口的场景时常出现。Charles和Wireshark是开发过程中最常用的两款抓包软件。 在日常开发中,我们无法看到应用程序与服务器之间发送和接收的内容,没有这种可见性,我们在确定故障的确切位置时会非常困难且耗时。而Charles是一个运行在PC上的Web代理,我们将应用程序配置为 ...

Scrum Master是一种能力

SM角色 SM是教练的角色 SM的贡献表现在对团队效能的提升 SM的组织目标是:引导团队自组织,SM管理的时间投入越来越少 SM的成长关键:迭代优化总结,每个迭代的精进总结成长 异步协同:异步有利于提高每个成员的效率,尽量做异步协同,参考《为什么精英都是时间控》 同步协同:利用早会时间,做好同步协同,技术风险点做好同步和评估 向上反 ...