SpringCloud—Ribbon(负载均衡器)
Ribbon Ribbon 是 Netflix 开源的基于 HTTP 和 TCP 的客户端负载均衡器框架,目前也已被 S…
Spring—读取配置的方式,@Value、@PropertySource、@ConfigurationProperties使用详解
前言 Spring (Boot)获取参数的方式有很多,其中最被我们熟知的为@Value了,它不可谓不强大。 针对我们平时最长使用的@Value,以及可能很少人使用的@PropertySource、@C…
SpringCloud—的负载均衡策略
我们大致的了解了一下Spring Cloud中有哪些负载均衡器,但是对于负载均衡策略我们并没有去详细了解,我们只是知道在BaseLoadBalancer的chooseServer方法中,调用了IRul…
SpringCloud—负载均衡器概览
RestTemplate的工作过程,在分析的过程中,我们遇到过一个ILoadBalancer接口,这个接口中有一个chooseServer方法是我们选择服务实例的方法,这个也是整个负载均衡中最最核心的…
SpringCloud—Consul(一)(Ribbon)
我们知道 Eureka 2.X 遇到困难停止开发了,但其实对国内的用户影响甚小,一方面国内大都使用的是 Eureka 1.X 系列,另一方面 Spring Cloud 支持很多服务发现的软件,Eure…
@LoadBalanced注解为何就让RestTemplate拥有负载均衡的能力?(Ribbon)
在Spring Cloud微服务应用体系中,远程调用都应负载均衡。我们在使用RestTemplate作为远程调用客户端的时候,开启负载均衡极其简单:一个@LoadBalanced注解就搞定了。相信使用…
Spring—RestTemplate的使用和原理
再此之前有关于RestTemplate的基本使用以及相关内容: http://www.enmalvi.com/2020/03/28/spring-resttemplate/ http://www.en…
SpringMVC—URI Builder模式(UriComponents/UriComponentsBuilder)
URI Builder Spring MVC作为一个web层框架,避免不了处理URI、URL等和HTTP协议相关的元素,因此它提供了非常好用、功能强大的URI Builder模式来完成,这就是本文重点…
URI和URL的区别
首先给大家举个例子,有一家公司的总经理,某天,给了我一张名片,上面写了他的头衔,北京XXX公司总经理 张三,还有他的办公室地址,北京市海淀区长安街35号北京XXX公司总经理办公室,那么,我以…
RestTemplate组件:ClientHttpRequestFactory—ClientHttpRequestInterceptor—ResponseExtractor
本文为深入了解Spring提供的Rest调用客户端RestTemplate开山,对它相关的一些组件做讲解。 ClientHttpRequestFactory 它是个函数式接口,用于根据URI和Http…
SpringCloud—Eureka(二)(Ribbon)
服务注册 服务注册就是把一个微服务注册到 Eureka Server 上,这样,当其他服务需要调用该服务时,只需要从Eureka Server 上查询该服务的信息即可。这里我们创建一个 provide…
SpringCloud—Eureka(一)
Eureka是Netflix开源的一款提供服务注册和发现的产品,它提供了完整的Service Registry和Service Discovery实现。也是springcloud体系中最重要最核心的组…
Mybatis(Plus)—代码生成器
AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Control…
Mybatis-Migraions使用
1. 下载 mybatis-migraions安装包,地址: https://www.oschina.net/news/94218/mybatis-migrations-3-3-2-released …
JAVA 注解的基本原理
以前,『XML』是各大框架的青睐者,它以松耦合的方式完成了框架中几乎所有的配置,但是随着项目越来越庞大,『XML』的内容也越来越复杂,维护成本变高。 于是就有人提出来一种标记式高耦合的配置方式,『注解…
@DateTimeFormat 和 @JsonFormat注解
1. 准备 定义一个pojo,它有一个 java.util.Date 类型的属性 date。 import java.util.Date; public class DateVo { private …
lombok编写优雅的Bean对象
使用java编写代码,十之八九都是在写java类,从而构建java对象。lombok之前也说了不少,但使用了这么多年,感觉还是有很多技巧可以使用的。 毫无疑问,使用lombok,编写的java代码很优…
SpringBoot—AntPathMatcher匹配原则和含义
在使用spring security做登陆鉴权。登陆界面相关CSS和JS,以及部分api接口需要忽略,于是代码中用到了anyMatchers。 @Override public void config…
RBAC用户角色权限设计方案
RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联。 简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色…
SpringSecurity—实现自动登录功能
自动登录是我们在软件开发时一个非常常见的功能,例如我们登录 QQ 邮箱: 很多网站我们在登录的时候都会看到类似的选项,毕竟总让用户输入用户名密码是一件很麻烦的事。 自动登录功能就是,用户在登录成功后,…
SpringSecurity—如何将用户数据存入数据库(自带设计)
真正的项目中,大部分情况下,我们都是自己设计权限数据库, 不过,Spring Security 也给我们提供了一个它自己设计好的权限数据库,这里我们先来看看这是怎么回事! 1.UserDetailSe…
SpringBoot—过滤器注册方式
1.@WebFilter 通过 @WebFilter 注解来标记一个过滤器,这种方式相信大家很容易想到。这是将 Servlet 中的那一套东西直接拿到 Spring Boot 上用。 具体做法就是通过…
MybatisPlus—QueryWrapper、QueryChainWrapper、LambdaQueryWrapper以及LambdaQueryChainWrapper
前言:以前都是使用QueryWrapper的情况多一点,其余三种也没怎么涉及。 首先准备一个对应的实体类: @Data @TableName("house") public class HouseEn…
Spring—SpEL表达式总结
SpEL(Spring Expression Language),即Spring表达式语言。它是一种类似JSP的EL表达式、但又比后者更为强大有用的表达式语言。 为什么要用SpEL:因为它可以在spr…
MyBatisPlus—分页查询以及自定义sql分页
一、引言 分页查询每个人程序猿几乎都使用过,但是有部分同学不懂什么是物理分页和逻辑分页。 物理分页:相当于执行了limit分页语句,返回部分数据。物理分页只返回部分数据占用内存小,能够获取数据库最新的…
SpringSecurity—四种权限控制方式
Spring Security 中对于权限控制默认已经提供了很多了,但是,一个优秀的框架必须具备良好的扩展性,恰好,Spring Security 的扩展性就非常棒,我们既可以使用 Spring Se…
SpringSecurity—异常处理机制
在 Spring Security 的过滤器链中,ExceptionTranslationFilter 过滤器专门用来处理异常,在 ExceptionTranslationFilter 中,我们可以看…
Redis—StringRedisTemplate和RedisTemplate
RedisTemplate介绍 spring 封装了 RedisTemplate 对象来进行对redis的各种操作,它支持所有的 redis 原生的 api。 RedisTemplate在spring…
Maven—dependencies与dependencyManagement的区别
在一个项目中遇到一些jar包冲突的问题,之后还有很多人分不清楚dependencies与dependencyManagement的区别: DepencyManagement应用场景 当我们的项目模块很…
Java—Optional 详细用法 (java8)
一、简介 Optional 是一个对象容器,具有以下两个特点:     提示用户要注意该对象有可能为null    简化if else代码 二、使用介绍 1.创建:     Opt…