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,需要实例化得到一个对象,而实例化就需要用到构造方法。 一个构造方法一般情况下,一个类只有一个构造方法: 要么是无参的构造方法 要么是有......

算法常用的解题思路---动态规划

动态规划 动态规划(Dynamic Programming,DP)是运筹学的一个分支,是求解决策过程最优化的过程。20世纪50年代初,美国数学家贝尔曼(R.Bellman)等人在研究多阶段决策过程的优化问题时,提出了著名的最优化原理,从而创立了动态规划。动态规划的应用极其广泛,包括工程技术、经济、工业生产、军事以及自动化控制等领域,并在背包问题、生产经营问题、资金管理问题、资源分配问题、最短......

算法常用的解题思路---递归/回溯

回溯算法 回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。许多复杂的,规模较大的问题都可以使用回溯法......

vue父组件中调用子组件的方法

ref|组件的$emit、$on方法

vue解决跨域问题 方案一:通过ref直接调用子组件的方法123456789101112131415161718192021222324252627282930313233343536/......
vue

Spring相关的面试题

pring使Java编程对每个人来说更快、更容易、更安全。Spring对速度、简单性和生产率的关注使它成为世界上最流行的Java框架。

Why Spring? Spring makes programming Java quicker, easier, and safer for everybody. Spring’s focu......

103-简述 MyBatis 的插件运行原理,如何编写一个插件。

MyBatis四大对象(Executor、ParamterHandler、ResultSetHandler、StatementHandler),创建过程中都会有插件进行介入。插件利用JDK动态代理机制一层层的包装目标对象,实现在目标对象执行目标方法之前进行拦截的效果。 要点插件: 实现Interceptor接口 通过@Intercepts标注插件拦截规则 配置文件中引用自定义插件 插件实......

Spring、Spring MVC和Spring Boot的联系和区别

Spring是一个IOC容器|Spring对web框架的一个解决方案|Spring提供的一个快速开发工具包

SpringSpring是一个IOC容器,用来管理Bean,使用依赖注入实现控制反转。可以很方便的整合各种框架,提供AOP机制弥补OOP的代码重复问题、更方便将不同类不同方法中的共同功能处理成切......

SpringBoot配置文件加载顺序

配置文件的加载顺序

配置文件的加载顺序12345<includes> <include>**/application*.yml</include> <include&g......

100-常见面试题

思路 常见面试题 java基础一个 Java 程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作。下面简要介绍下类、对象、方法和实例变量的概念。 对象:对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。 类:类是一个模板,它描述一类对象的行为和状态。 方法:方法就是行为,一个类可以有很多方法。逻辑运算、数......

SQLSERVER数据库各种角色说明

固定服务器|数据库角色|设置示例

固定服务器(服务器级别角色)由于固定服务器是在服务器层次上定义的,因此它们位于从属于数据库服务器的数据库外面。下表列出了所有现有的固定 服务器角色 固定服务器角色 说 明 sy......

算法常用的解题思路---深度优先(DFS)和广度优先(BFS)

什么是深度优先搜索(DFS)和广度优先搜索(BFS)图的搜索有两种方式,一种是深度优先搜索(Depth-First-Search),另一种是广度优先搜索(Breadth-First-Search)。 深度优先搜索(DFS)  深度优先搜索是先序遍历的推广,深度优先搜索的非递归实现使用了一个栈。 广度优先搜索(BFS)  广度优先搜索是按层来处理顶点,距离开始点最近的那些顶点首先被访问,而......