能力说明:
精通JVM运行机制,包括类生命、内存模型、垃圾回收及JVM常见参数;能够熟练使用Runnable接口创建线程和使用ExecutorService并发执行任务、识别潜在的死锁线程问题;能够使用Synchronized关键字和atomic包控制线程的执行顺序,使用并行Fork/Join框架;能过开发使用原始版本函数式接口的代码。
能力说明:
理解微服务架构与单体应用架构在开发模式与运维上的区别,了解分布式、容器、DevOps在微服务架构中的应用,理解微服务的设计原则与服务组件。了解Service Mesh概念与Istio基础知识。
能力说明:
掌握计算机基础知识,初步了解Linux系统特性、安装步骤以及基本命令和操作;具备计算机基础网络知识与数据通信基础知识。
暂时未有相关云产品技术能力~
暂无个人介绍
LeetCode刷题记录(一):两数相加
看了中国诗词大会,必须要自己搞一个诗词问答小游戏。 文章最后还有一个思路,非常简单的思路,大家可以试着去实现一下。
一般大家不会使用ESC安装Windows系统,正是由于这个原因,才导致了相关的配置指导文章过少。一旦需要很难找得到准确的文章。
让你摆脱硬件的搬运,可以扔掉电脑包了。
身为一个Java后端开发人员,在这个时代如何做才能更好的入门云原生。
本篇文章就是告诉大家如何在SpringCloud项目中使用JWT实现统一授权。Gateway中集成统一认证授权,是微服务网关中必然要集成的功能之一,重要性不言而喻.
微服务中的权限认证,一般是有着几种常用的解决方案,比如JWT(Json web token)、分布式Session、OAuth2 Token等等方案。JWT,简单易集成,而且可以将用户的基本信息加密到token中,此信息在前端也可以去获取到一定的信息。
Gateway中一共提供了两种过滤器,一种是GatewayFilter、GlobalFilter; GatewayFilter:Gateway网关过滤器,是针对单个路由的过滤器,又称局部过滤器。GlobalFilter:从名称而言,那就是全局过滤器,
初步的使用了Gateway组件,并且在SpringCloud框架中进行了集成操作,已经算是入门了,接下来就是要全面的了解下Gateway中各项配置了。
我们分享了Gateway的基本介绍和主要特性,同时对Gateway有了基本的认识,有了这个基础,我们就可以进行初步的学习了。 今天我们就要来初步学习一下SpringCloud中如何集成Gateway网关组件。
SpringCloud中的网关组件,最先开发出供开发人员使用的,是Zuul,而在其组件之后,Spring官方基于Spring2.0、SpringBoot2.0、Project Reactor等技术开发出来了新的替代品,那就是Gateway。
学习过了Nacos服务的部署,数据持久化,实现服务治理,实现服务配置管理等相关知识,以及Nacos后台系统的操作也学习了个遍,可以说目前已经对Nacos也有了一定的认知和使用经验。
第六篇关于Nacos的文章,今天的文章既可以算作是Nacos的开发教程,同样也可以被称为Nacos后台系统的操作手册,简单的普及一下其后台系统相关功能。
微服务中的配置管理功能,SpringCloud中提供了SpringCloud Config组件来实现的,而SpringCloud Alibaba系列中则是通过Nacos来实现的。 这样的话,Nacos除了服务治理功能,还实现了配置管理功能,功能的强大性就不说了,随着Nacos2的发布,各项功能的集成也已经实现。
学习Nacos服务治理功能的基础使用,Nacos服务治理还有一些其他的配置项。
Nacos的持久化是通过MySQL数据库来进行持久化的,所以需要先执行初始化SQL进行建库建表。配置Nacos的持久化,首先我们要创建相应的数据库和数据表,需要一个初始化SQL。
Nacos的一些核心组件和功能,在上一篇中已经说过了,接下来就是Nacos的使用。在编码前,我们还需要做一个工作,那就是Nacos的安装,不同于Euraka组件,Nacos是一个独立服务,所以需要我们独立的去部署一下。在CentOS7下部署Nacos。
Nacos作为阿里巴巴提供的一款服务发现组件,又加上集成了配置管理等等的功能,在使用方面,已经逐步超越了Euraka,开始慢慢成为了众多企业级系统使用的主流组件。
Java8的新特性:Lambda表达式,方法引用,Stream流,默认方法,日期处理。
上篇文章中学习了操作Redis中Set数据类型的两个主要方法,分别是opsForSet方法和boundHashOps方法,这两个方法也是目前最为常用的操作Set数据类型的方法了。今天我们就要来看下一个Redis数据类型的操作方法了,也是这个系列的最后一篇文章了。
在上篇文章中学习了操作Redis中Hash数据类型的两个主要方法,分别是opsForHash方法和boundHashOps方法,这两个方法也是目前最为常用的操作Hash数据类型的方法了。接下来我们就要来看下一个Redis数据类型的操作方法了。
我们学习了opsForValue方法中的一些具体的功能方法,其中包括添加方法set、获取方法get、自增方法increment等等,今天我们要来学习的是Hash数据类型的数据处理相关方法。
我们学习了RedisTemplate中操作众多的特定数据类型的一些方法,今天我们要来看一下boundValueOps和opsForValue两个方法返回的对象都有着哪些操作Redis的方法。
上篇文章我们学习了三个方法,分别是delete、expireAt、expire三个方法。今天我们就开始学习RedisTemplate中操作String、Hash、Set等特定数据类型的一些方法了。
上篇文章我们学习了三个方法,分别是getExpire(K key)、getExpire(K key, TimeUnit timeUnit)、move三个方法,今天我们学习了RedisTemplate中的delete、expireAt、expire三个方法。
今天我们学习RedisTemplate中的getExpire(K key)、getExpire(K key, TimeUnit timeUnit)、move三个方法。
上篇文章我们学习了三个方法,分别是keys()、randomKey()、hasKey()三个方法。今天我们要来学习rename(K oldKey, K newKey),type(K key),dump(K key)三个方法。
前面几篇文章我们主要学习了RedisTemplate的几个基础方法,还记得有哪些方法吗?从今天开始,我们就要开始学习RedisTemplate的推荐使用方法了,也是我们在日常开发中常用到的一些方法了,实用性也比前几篇文章高的多。
executePipelined方法主要是提供了可批量处理的特征,还有就是当前方法的传入参数限制了会话的回调参数。此方法是可以在多次执行,或者是多任务频繁执行时进行使用,当然这里还要去考虑SessionCallback参数才可以。
execute提供了基础的操作Redis方法的实现,为其他特定数据类型操作方法提供了基础方法的实现。今天我们是要来学习一下RedisTemplate中的execute方法具体使用方法,并且提供出相应的代码实现。
执行自定义SQL方法时,调用的就是execute方法。execute方法是一个很宽泛的方法,其他专注特定的Redis数据类型封装的方法都是基于此方法。这就说明了其他方法能实现的,execute方法也能实现。
我们在上篇文章中学习到了SpringBoot项目如何集成Redis相关组件功能,而SpringBoot集成Redis组件内部涉及的对象就是RedisTemplate。 接下来我们就一起来看一下RedisTemplate提供了哪些操作Redis数据库的方法,再者就是看一下这些方法是如何使用的。
Redis是一款NoSql数据库,经常用于缓存数据,我们也经常要在不同系统框架中去集成Redis数据库的访问。我们要学习SpringBoot项目中是如何集成Redis的,文章最后附上平时使用的工具类。
我们在上篇文章中学习到了部分Validation组件内部的另外几个注解。分别是效验属性值的是否符合当前范围内的注解@Range;还有@AssertFalse和@AssertTrue两个可以效验当前布尔类型属性值的注解;今天学习@Email@DecimalMax和@DecimalMin的注解。
今天学习效验属性值的是否符合当前范围内的注解@Range,还有@AssertFalse和@AssertTrue两个可以效验当前布尔类型属性值的注解。
我们在上篇文章中学习到了部分Validation组件内部的另外几个注解,有的可以效验日期,有的可以效验正则,也看了相关代码示例,今天学习@Size @Max @Min的注解。
正则表达式效验注解最为特殊,其实正则表达式可以代替很多注解,但还是Validation组件还是提供了很多简单的例子。
我们在上篇文章中写到了如何在Springboot项目中集成Validation,以及如何进行简单的使用。今天我们就来学习Validation组件的一些基本注解吧。
我们在进行web端开发时,总是要对一些传入参数进行一些效验,比如是否为空,是否符合格式等等的规则。为了更加方便、高效的进行开发,市面上多出了几款参数效验的组件,今天我们要来学习的就是validation组件,还有相关的集成到SpringBoot项目中的过程。
为了更好的学习,我们回顾上一篇的学习内容,上篇文章我们理了一下ftp要上传一个文档时,大概的流程和在这个过程中可能需要使用的一系列方法。接下来我们就要带着这个思路,去真真切切的看一下edtFTPj所提供的方法吧。今日学习edtFTPj组件内提供了哪些操作FTP的方法。
在集成过程中,我们使用了Java的FTP组件edtFTPj,接下来的系列文章,我们就围绕着edtFTPj组件来说起。常常有人说起,要知其然,并且知其所以然,所以我们就要先来看一下edtFTPj提供的操作Ftp的常用方法。
FTP是一个文件传输协议,被开发人员广泛用于在互联网中文件传输的一套标准协议。而我们通常在开发过程中也要通过FTP来搭建文件系统,用于存储系统文件等。目前正值SpringBoot热潮,所以接下来会一起学习一下SpringBoot如何集成FTP,以及相关的FTP组件包,还有其主要提供的几个方法。
前面我们又讲述了exchange方法的使用方式,代码示例等等,接下来就是RestTemplate的最后一棒了,execute方法,这个方法要更加的灵活。
我们能不能自己去指定相应的请求来调用请求呢,其实在那些固定方法中同样也是调用的自定义方法来执行的,接下来我们的任务就是学习一下RestTemplate中的exchange方法和execute方法。本篇文章先就exchange方法进行讲解。
我们学习了DELETE请求的相关方法的使用方法,以及具体参数的不同,当然还有一些代码示例等等,今天我们来学习OPTIONS请求的使用方法。
我们学习了PATCH请求的相关方法的使用方法,以及具体参数的不同,当然还有一些代码示例等。今天我们来学习DELETE请求的使用方法,来共同学习一下吧。
我们学习了Put请求的相关方法的使用方法,以及具体参数的不同,当然还有一些代码示例等等。今天我们来学习PATCH请求的使用方法,PATCH请求与PUT请求可是存在着不解之缘的。
Post请求的主体方法一共有三个,是这些方法中最多的了,一定要复习一下。今天我们来学习PUT请求的使用方法。
上篇文章,我们学习了HEAD请求的相关方法的使用方法,以及具体参数的不同,当然还有一些代码示例、使用场景等,今天我们来学习POST请求的使用方法。
今天我们来学习HEAD请求的使用方法,搞清headForHeaders方法的使用场景。