Sunfy Blog

Life is diligent, no pains, no gains.
Viewed Times
Visitors In Total

更优雅的发HTTP请求(RestTemplate)

Spring提供的用于访问Rest服务的客户端,RestTemplate提供了多种便捷访问远程Http服务的方法,能够大大提高客户端的编写效率。

RestTemplate是Spring提供的用于访问Rest服务的客户端,RestTemplate提供了多种便捷访问远程Http服务的方法,能够大大提高客户端的编写效率。 我之前的HTTP开发是......

如何从容应对复杂性

软件的复杂性,是一个很泛的概念。但是一直都是开发过程中的一个难题,本文旨在探讨如何去从容应对复杂性。

一 软件的熵增、构造定律1 熵增定律熵的概念最早起源于物理学,热力学第二定律(又称“熵增定律”),表明了在自然过程中,一个孤立的系统总是从最初的集中、有序的排列状态,趋向于分散、混乱和无序;当熵......

高并发Redis缓存那些事儿

Redis缓存常见问题及相应问题的解决方案 缓存穿透查询一个根本不存在的数据, 缓存层和存储层都不会命中, 通常出于容错的考虑, 如果从存储层查不到数据则不写入缓存层。缓存穿透将导致不存在的数据每次请求都要到存储层去查询, 失去了缓存保护后端存储的意义。 基本原因 自身业务代码或者数据出现问题。 一些恶意攻击、 爬虫等造成大量空命中。 解决方案1、缓存空对象 12345678910111......

LRU缓存算法的实现

一种常见的页面置换算法

LRULRU(Least Recently Used)是一种常见的页面置换算法,在计算中,所有的文件操作都要放在内存中进行,然而计算机内存大小是固定的,所以我们不可能把所有的文件都加载到内存,因......
LRU

CAS操作分析

Compare And Swap,比较并交换

CASCAS(Compare And Swap,比较并交换),通常值的是一种原子操作,针对一个变量,首先比较它的内存值与某个期望值是否相同,如果相同就给它赋值另一个值。正所谓比较并交换。 if......

深入理解 Java SPI机制

一种服务发现机制,自动加载文件里所定义的类。

SPI ,全称为 Service Provider Interface,是一种服务发现机制。在ClassPath路径下的META-INF/services文件夹查找文件,自动加载文件里所定义的类......
SPI

docker-compose 启动容器

docker 客户端非常简单 ,我们可以直接输入 docker 命令来查看到 Docker 客户端的所有命令选项。 docker-compose 是什么docker-compose 是一个用来把 docker 自动化的东西。有了 docker-compose 你可以把所有繁复的 docker 操作全都一条命令,自动化的完成。 为什么要用 docker-compose,他解决了什么用通俗的语言......

Spring推断构造方法

一个构造方法|多个构造方法

Spring推断构造方法 Spring中的一个bean,需要实例化得到一个对象,而实例化就需要用到构造方法。 一个构造方法一般情况下,一个类只有一个构造方法: 要么是无参的构造方法 要么是有......

云服务器80端口被占用

在使用案例云或其他厂商的云服务器时遇到的80端口被占用问题,如何释放80端口?问题主要出现在Windows Server服务器上,Linux服务器上暂且还没有遇到类似情况。 问题:80端口被占用?如何释放80端口第一步、win+r输入cmd第二步、在控制台输入netstat -aon | findstr “80”命令。找出类型为TCP端口80的,然后记录PID(最后一行为PID)如下图 ......

云服务器80端口被占用

在使用案例云或其他厂商的云服务器时遇到的80端口被占用问题,如何释放80端口?问题主要出现在Windows Server服务器上,Linux服务器上暂且还没有遇到类似情况。 问题:80端口被占用?如何释放80端口第一步、win+r输入cmd第二步、在控制台输入netstat -aon | findstr “80”命令。找出类型为TCP端口80的,然后记录PID(最后一行为PID)如下图 第......

Java设计模式之模板模式

在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。 介绍意图:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 主要解决:一些方法通用,却在每一个子类都重新写了这一方法。......

Java设计模式之策略模式

在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。 在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。 介绍意图:定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。 主要解决:在有多种算法相似的情况下,使用 if…......

Java设计模式之建造者模式

建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 一个 Builder 类会一步一步构造最终的对象。该 Builder 类是独立于其他对象的。 介绍意图:将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。 主要解决:主要解决在软件系统中,有时候面临着”一个复杂对象......

Java设计模式之单例模式

java设计模式:设计模式是被大多数人反复使用,在软件开发过程中所面临的一般问题的解决方案。是大多数人员经过较长时间所总结出来的的一套代码设计经验的总结; 什么是设计模式(Desin Pattern) 设计模式是被大多数人反复使用,在软件开发过程中所面临的一般问题的解决方案。是大多数人员经过较长时间所总结出来的的一套代码设计经验的总结; 为什么使用设计模式? 使用设计模式可以提高代码的重用性......

Git基本操作

git基本操作,本博客只是最基本操作说明和相应图解 Git下载 git下载安装地址:https://git-scm.com/downloads 安装过程基本属于一路next,这里不做介绍,主要介绍git的操作命令 Git工作流程 git 基本命令 123456789101112131415161718192021222324252627282930313233343536# 将当前目......
git

Centos设置静态ip

Centos设置静态IP Vmware workstation中的centos ip地址会在没重启的情况下发生变化。 虚拟机的IP租约过期后,IP就会自动重新分配,从而造成IP地址自行变化。 为了应用方便,需要设置centos的固定ip。 版本centos7 设置步骤 1.ifconfig 找到当前的centos的ip 2.进入文件 vim /etc/sysconfig/network-sc......

IDEA使用基本设置

IDEA 使用前的一些基本配置。 参考链接 idea激活设置仓库地址:https://repo.idechajian.com ,如下图所示 点击OK,便可以在插件中心,搜索关键字“BetterIntellij”,如下图所示 百度网盘连接:https://pan.baidu.com/s/10XZfOxsb9Enf5tmUFJQlnA提取码: yetp 激活码×(2099)1BISACXYELK......

maven跳过单元测试-maven.test.skip和skipTests的区别

-DskipTests,不执行测试用例,但编译测试用例类生成相应的class文件至target/test-classes下。 -Dmaven.test.skip=true,不执行测试用例,也不编译测试用例类。 不执行测试用例,但编译测试用例类生成相应的class文件至target/test-classes下。 一 使用maven.test.skip,不但跳过单元测试的运行,也跳过测试代码的编......