自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(119)
  • 资源 (2)
  • 收藏
  • 关注

原创 Java8新特性-Optional类

OptionalOptional类是Java8为了解决null值判断问题,借鉴google guava类库的Optional类而引入的一个同名Optional类,使用Optional类可以避免显式的null值判断(null的防御性检查),避免null导致的NPE(NullPointerException)。如果我们需要检查一个对象是否为null,我们一般逻辑是这样的。public class Java8Tester { public static void main(String[] arg

2021-09-23 10:00:35 282

原创 Java8新特性-Stream流

目录StreamStreamAPI经典接口注意Streamjava8新添加了一个特性:流Stream。Stream让开发者能够以一种声明的方式处理数据源(集合、数组等),它专注于对数据源进行各种高效的聚合操作(aggregate operation)和大批量数据操作 (bulk data operation)。Stream API将处理的数据源看做一种Stream(流),Stream(流)在Pipeline(管道)中传输和运算,支持的运算包含筛选、排序、聚合等,当到达终点后便得到最终的处理结果。

2021-09-23 09:58:21 325

原创 Java8新特性-Lambda表达式与方法引用

目录Lambda表达式forEach函数式接口经典函数式接口方法引用Lambda表达式如果一个接口只有一个能够代表它的一个抽象方法,那么我们可以使用lambda表达式将这个类的实现表示出来可选类型声明: 无需声明参数类型,编译器即可自动识别可选的参数圆括号: 仅有一个参数时圆括号可以省略可选的大括号:主体只包含一个语句时可省略大括号可选的返回关键字:主体只包含一个表达式返回值并省略大括号时,编译器会自动return返回值;有大括号时,需要显式指定表达式return了一个数值

2021-09-23 09:53:23 450

原创 docker技术(一)

doker

2021-09-23 09:47:55 140

原创 面试官:你是怎么进行MySQL优化的?

目录数据库设计数据表结构数据字段优化恰当建立索引数据库拓展数据库集群配置分库分表SQL语句优化数据库优化的方向数据库设计:数据表设计遵循三范式,使用合适的数据类型,使用合适的存储引擎适当创建索引数据库扩展:数据库的分表分库,读写分离等SQL语句优化等数据库设计数据表结构第一范式1NF:字段原子性所有的字段都需要细分到不能再分的地步,如在一个地址字段中包含很多信息,如一个字段中包含省市两个信息,必须对他进行再次细分。第二范式2NF: 每一列都要与主键相关,且不存在部分依赖MySQ

2021-08-11 19:28:29 163 1

原创 索引详解(从Hash索引到B+树数据结构)

目录索引索引的数据结构Hash索引二叉树红黑树B树B+树索引的分类索引的使用全文索引的使用百万数据级别的搜索对比索引MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。提取句子主干,就可以得到索引的本质:索引是一种特殊数据结构。索引实际上是将某个被使用频繁的字段抽取出来,建立一种单独的数据组织结构。就像一本字典,我们把他们的首字母抽取出来,组成一个目录,我们查询时直接查询目录,可以大大的减少我们的查询速度。提高查询速度的同时,当我们需要对数据修改时,修改的的速度也会

2021-08-11 19:25:50 435

原创 MySQL事务详解(读写锁+MVCC)

目录事务的四大特性ACID事务的隔离级别MVVC+读写锁读写锁两种读取数据方法隔离级别的实现InnoDB的中MVVC原理使用事务在数据库中,我们将我们的指定的一些操作设置为一个事务。事务的四大特性ACIDAtomocity:原子性,一个事务中的所有操作,要么全部完成,要么全部失败。Consistency:一致性,一个或多个事务执行后,原来一致的数据和数据库仍然是一致的。银行转账前后,金额的总额不改变。Lsolation:隔离性,数据库开启一个事务时,不会受到其他事务对数据操纵导致数据不一致。多个

2021-08-11 19:23:34 616

原创 Java基础扫盲

目录面向对象基本类型与引用类型接口与继承static关键字final关键字代码块接口和抽象类java四大引用类型面向对象面向对象编程的三特性继承:使用现有的类对其所有属性和功能,在无需重新编写原来的类的基础上对其扩展。继承作为面向对象编程的特性,可以大大的减少代码的冗余,实现代码的复用,继承了父类的子类可以继承其所有的属性和功能,并且可以对其进行拓展。实现其也要注意一些事项public和protected属性或者方法,可以直接继承并使用。private权限的属性和方法不可被继承。

2021-08-06 13:03:42 306

原创 Redis整合使用

目录Jedis的API使用测试Jedis建立连接与测试Jedis常用APIjedis事务测试Redis与Springboot的整合Jedis的API使用测试Jedis是官方指定的Redis连接工具,如果想在java中使用Redis,应该和MySQL一样需要有类似jdbc一样的工具来建立连接并且操作。而Jedis的作用就类似于jdbc。在数据库连接和操作中是必不可少的。Jedis建立连接与测试导入依赖<dependency> <groupId>redis.clie

2021-07-29 11:33:56 269

原创 血肝一天,C站最详细的Redis主从复制!!!

目录Redis主从复制与集群主从复制原理Redis的主从复制实现方案一主一从实现方案一主多从实现方案Redis集群实现方案(多主多从)Redis哨兵模式实现高可用链式结构平级关系哨兵模式实现高可用配置哨兵模式sentinel的配置相关Redis主从复制与集群主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主结点(master/leader),后者称为从节点(slave/follower);数据的复制是单向的,只能由主节点到从节点。Master以写为主,Slave 以读

2021-07-26 21:20:14 253

原创 Redis发布订阅

目录发布订阅的实现订阅发布原理解析Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。订阅者可以订阅任意数量的频道。Redis被广泛用于构建即时通信应用,比如网络聊天室(chatroom)和实时广播、实时提醒等。发布订阅的常用指令序号命令及描述1subscribe channel [channel ...] 订阅给定的一个或多个频道的信息。2psubscribe pattern [patter

2021-07-25 23:14:27 266 6

原创 Redis事务

目录事务执行的多种情况使用watchRedis的事务本质是一组命令的集合,当事务开启期间,所有的命令都按原有的顺序暂时存入一个缓存队列中,并对其命令进行序列化;当事务被执行时,缓存队列中所有的命令按实际情况进行执行。所以缓存队列具有一次性,顺序性,排他性的特点。Redis事务不具有隔离性概念特别注意,因为Redis是一种基于乐观锁来保证数据一致性的机制。在其事务开启期间,所有的命令都被存入缓存队列中,命令并没有被执行,相当于不存在修改这一过程,所以也不存在各事务相互隔离的概念,所有的事务互不影响。

2021-07-25 23:10:08 117

原创 Redis持久化操作

目录RDBAOF总结Redis 是内存数据库,它是基于内存进行读写的,这也是它效率高的重要原因之一。如果不将它的数据设置过期,那么它将会一直保存在内存中,除非手动将其移除或者手动关闭redis服务进程。数据才会从内存中消失。这个时候如果没有对数据进行持久化操作,我们的数据将会永久性的丢失。所以redis为我们提供了数据的持久化方式,这样当我们的reids服务器在不可逆情况下产生宕机时,重启后数据仍能够被重新读取到redis服务中。Redis提供了两种数据持久化的方式RDB(Redis DataBa

2021-07-25 22:59:31 223 1

原创 Redis.conf配置详解

Redis.conf配置详解redis的配置文件是实现redis进一步了解的重要基石,通过对配置文件的深入了解,我们可以弄清redis的部分工作原理依据,可以实现对redis数据库的按需配置,可以更加适应实际开发的需要。如下对一份原生的redis配置文件一些基本配置进行说明:# Redis configuration file example.## Note that in order to read the configuration file, Redis must be# started

2021-07-24 16:19:59 6661 1

原创 Redis的八大数据类型

目录通用型方法五大基本类型字符串String列表List集合Set哈希Hash有序集合Zset三种特殊类型Geo地理位置HyperLogLogBitMap位图Redis共有五大基本类型和三大特殊类型。但是Redis本质上是NoSQL的键值对类型数据库,所以不管什么类型,本质上仍然基于键值对来存储的,只是各种数据类型的一些函数方法不同。通用型方法# key * 查看所有键值127.0.0.1:6379> keys *1) "age"2) "name"3) "addr"# exists

2021-07-24 14:53:08 891

原创 Redis入门与安装

目录Redis单线程下高效的原因Redis在windows下的安装Redis在Linux下的安装Redis拓展压力测试工具 `redis-benchmark`数据库基础知识Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的APIRedis 的作用:内存存储、持久化(RDB 和 AOF)效率高,可以用于高速缓存发布订阅系统,队列地图信息分析计数

2021-07-24 14:50:54 181 2

原创 NoSQL的简要概述

目录关系型数据库的架构演变NoSQL简述NoSQL和RDBMSNoSQL的四大分类关系型数据库的架构演变单机mysql在低数据量的访问时,我们使用单个的MySQL就可以满足我们的数据访问要求。比如个人博客系统,后台管理系统等,我们同时在线使用的人数不多并且并发访问数量极低。而且我们存储的数据量少,一个简单的MySQL服务已经足够满足我们的需求。缓存+业务垂直分离随着访问量的增加,高并发下的数据访问量使得我们单一的应用无法支撑高流量下的并发访问,同时,对数据库的频繁访问导致数据库性能满足

2021-07-24 14:48:28 278 1

原创 关系型数据库的架构演变

关系型数据库的架构演变单机mysql在低数据量的访问时,我们使用单个的MySQL就可以满足我们的数据访问要求。比如个人博客系统,后台管理系统等,我们同时在线使用的人数不多并且并发访问数量极低。而且我们存储的数据量少,一个简单的MySQL服务已经足够满足我们的需求。缓存+业务垂直分离随着访问量的增加,高并发下的数据访问量使得我们单一的应用无法支撑高流量下的并发访问,同时,对数据库的频繁访问导致数据库性能满足不了业务需求。为了解决应用程序上的瓶颈,将业务进行模块化开发,分别部署在不同的服务器上对业

2021-07-22 16:36:14 184 1

原创 Dubbo服务治理之服务降级

目录可视化服务降级处理集群容错整合hystrix实现服务降级细处理可视化服务降级处理当短时间内服务出现网络故障时,或者我们希望让程序以最大的算力去保证核心业务的运行,对于非核心业务暂时屏蔽调用,我们可以采用服务降级的方式来实现这一服务治理。屏蔽:表示消费方对该服务的方法调用都直接返回 null 值,不发起远程调用。用来屏蔽不重要服务不可用时对调用方的影响。容错 :表示消费方对该服务的方法调用在失败后,再返回 null 值,不抛异常。用来容忍不重要服务不稳定时对调用方的影响。禁止: 表示消费方服务直

2021-07-16 09:46:08 377

原创 Dubbo服务治理之负载均衡

dubbo负载均衡服务治理作为服务治理的一项功能,不管是在分布式治理dubbo上还是分布式微服务springcloud上都有着举足轻重的功能,也是服务治理的核心功能之一。在集群负载均衡时,Dubbo 提供了多种均衡策略,缺省为 random 随机调用。如果想要自行定义负载均衡策略,也可以采用继承接口的方式来进行。dubbo提供的四种负载均衡策略。Random LoadBalance随机,按权重设置随机概率。在一个截面上碰撞的概率高,但调用量越大分布越均匀,而且按概率使用权重后也比较均匀,有

2021-07-16 09:43:34 375 2

原创 dubbo配置详解

目录dubbo配置优先级dubbo配置属性说明dubbo配置覆盖策略dubbo配置服务治理dubbo配置优先级dubbo的配置可以配置在不同位置上,但是同时只能生效一个。主要三个位置的配置:JVM配置->配置文件->外部配置而之前所说的注解形式和xml配置形式和API配置都是属于配置文件配置。优先级的图示如下:重写与优先级优先级从高到低:JVM -D 参数:当你部署或者启动应用时,它可以轻易地重写配置,比如,改变 dubbo 协议端口;XML:XML 中的当前配置会重写 du

2021-07-16 09:41:34 3709

原创 dubbo多种形式配置详解(xml,注解,配置类,外部化配置等)

目录dubbo使用xml配置服务提供者搭建配置服务消费者搭建配置dubbo使用注解配置服务提供者搭建服务消费者搭建dubbo注解实现方法粒度配置dubbo编写配置类注入配置dubbo使用外部化配置与结合方式配置dubbo外部化配置dubbo注解配置与xml配置结合使用dubbo使用xml配置在搭建了dubbo管理平台和zookeeper注册中心之后就可以用分布式的思想来构建我们的项目了。一般分布式项目由多个服务提供者组成,并且有不同的服务消费者去调用接口,服务消费者可以调用多个服务提供者,服务消费者可

2021-07-16 09:38:48 3232 4

原创 Dubbo注册中心Zookeeper,监控中心,管理平台的搭建

目录注册中心之zookeeperdubbo管理平台dubbo监控中心注册中心之zookeeper注册中心在dubbo中相当于一个目录检索的作用,服务提供者在注册中心注册自己提供的服务,而消费者从注册中心获取服务地址列表,服务消费者根据地址列表快速找到服务提供者并且调用服务。而作为一个提供目录作用的工具平台,可供的选择有很多种。消费者和提供者之间甚至可以不使用采用dobbu直连的方式进行访问。但是这将失去我们服务治理的大部分功能。dobbu可供选择的注册中心有:ZookeeperNacosMu

2021-07-16 09:28:34 403 1

原创 分布式架构演变和Dubbo

分布式架构演变和Dubbo官方文档从最初开发的单体应用,到后面的垂直应用架构,随着网络流量大时代的到来,垂直应用架构已无法满足越来越庞大的流量需求,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。而dubbo就是一套十分优秀的分布式框架,它经历了世界上最大的高并发数据量的的访问(淘宝双十一),并且表现出十分优秀的性能。dubbo提供了十分成熟和稳定的分布式架构解决方案,使我们的应用搭建分布式架构变得更加简单和快捷。dubbo架构如果我们想要搭建一套基于dubb

2021-07-16 09:25:19 184

原创 两种方式使用VueCli快速构建Vue项目

vue cli脚手架使用Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统。使用Vue 脚手架之后我们开发的页面将是一个完整系统(项目)。Vue Cli提供了以一种简单的方式来构建Vue项目,在Vue下,所有的配置,例如:loader,打包配置等,都不再需要手动安装管理。自己使用webpack也可以搭建Vue项目,但是很多配置都需要手动安装和手写配置文件,相对来说,Vue-Cli大大简化了这个配置过程,使前端人员能够更加专注于功能页面的实现。Vue cli的安装与常用指令前置环境

2021-07-09 15:14:10 878

原创 深入浅出学Vue(六) | Vue路由router

目录Vue路由安装CDN引入直接下载NPM引入初识vue-routerrouter-linkredirect重定向的使用设置router-link激活样式路由传参通过$router.query方法传参通过$router.params方法传参路由嵌套router实现经典三栏视使用watch监听路由属性path变化Vue路由Vue Router 是 Vue.js 官方的路由管理器。它和 Vue.js 的核心深度集成,让构建单页面应用变得易如反掌。包含的功能有:嵌套的路由/视图表模块化的、基于组件的路由

2021-07-09 15:11:21 270

原创 深入浅出学Vue(五) | Vue与后端进行交互

目录PromiseaxiosAxios语法格式Axios过滤器async-await用法Vue与后端交互案例Promiseajax作为一种运用广泛异步请求方式,在特殊的业务逻辑时会出现某种问题。比如:ajax成功回调后调用另外一个ajax,这样的ajax将会让逻辑十分复杂和混乱,而且一步出错,步步出错。而Promise则用另一种语法方式则可以解决这种ajax的嵌套问题。并且Promise对象提供了简洁的API 用法简单使用方法:1.then 异步调用正确时返回2.catch 获取异

2021-07-09 15:08:48 19675 1

原创 深入浅出学Vue(四) | Vue组件的使用

目录初识组件组件注册全局组件局部组件Data与methods组件切换使用v-if切换使用component标签动态切换Prop与传值问题父组件向子组件传值父组件向子组件传递方法子组件向父组件传值利用ref获取DOM和组件引用插槽组件简单应用具名插槽和匿名插槽vue新版本语法子组件向父组件传值动态组件与异步组件动态组件异步组件初识组件可以通过一个简单的组件来认识组件。新建组件Vue.component('mycomponent', { data: function(){ r

2021-07-09 15:06:41 320

原创 npm本地安装和全局安装的区别

本地安装和全局安装的区别使用node install webpack -g的方式来进行全局安装,安装目录默认将是Node安装目录的node_moudle文件夹。当全局安装之后,可以在命令行中去使用安装的包,而在项目中要使用,需要修改导入路径才可以使用。使用node install webpack -D的方式来进行本地安装,将默认安装在当前项目的node_modules文件夹。安装完成后将在项目的package.json中的Devdependencies或者dependencies加入安装包的版本号进信

2021-07-08 09:07:44 1261

原创 webpack中的加载器loader

webpack中的加载器通过loader打包非js模块在实际开发过程中,webpack 默认只能打包处理以.js 后缀名结尾的模块,其他非.js 后缀名结尾的模块,webpack 默认处理不了,需要调用loader加载器才可以正常打包,否则会报错!loader 加载器可以协助webpack 打包处理特定的文件模块,比如:less-loader可以打包处理.less相关的文件sass-loader 可以打包处理.scss相关的文件url-loader可以打包处理css中与 ur1路径相关的文件

2021-07-08 09:07:08 157

原创 webpack打包配置

webpack打包配置webpack的4.x版本中默认约定:打包的入口文件为src-> index.js打包的输出文件为dist -> main.js如果不适用webpack打包,那么浏览器将无法识别ES6模板规范。修改打包入口和出口项目根目录新建webpack.config.js文件,加入配置代码const path = require('path') //导入node.js操作路径的模块module.exports = { mode: 'develop

2021-07-08 09:06:43 337

原创 webpack的安装与使用

模块化规范-ES6模块化在ES6模块化规范诞生之前,Javascript社区已经尝试并提出了AMD、CMD、CommonJs等模块化规范.但是,这些社区提出的模块化标准,还是存在一定的差异性与局限性、并不是浏览器与服务器通用的模块化标准,例如:AMD和CMD适用于浏览器端的Javascript模块化commonJs适用于服务器端的Javascript模块化因此,ES6语法规范中,在语言层面上定义了ES6模块化规范,是浏览器端与服务器端通用的模块化开发规范。ES6模块化规范:每个js文件都

2021-07-07 19:33:04 193 3

原创 nrm工具的安装和错误解决

npm工具的安装nrm是一个npm服务器下载地址管理工具,当我们使用国外的地址访问速度慢时,我们可以修改为过国内的镜像地址下载。安装cmd命令行输入npm install nrm -g测试nrm testC:\Users\Lyj>nrm test npm ---- 893ms yarn --- 7056ms cnpm --- 9358ms* taobao - 163ms nj ----- Fetch Error npmMirror 8533ms e

2021-07-07 19:31:22 1106

原创 springboot集成富文本编辑器

springboot集成富文本编辑器Editor.md : The open source embeddable online markdown editor (component), based on CodeMirror & jQuery & Marked.Editor.md:一款开源的在线富文本编辑器,需要在jQuery或者CodeMirror或者Marked的支持下使用Full-featured: Real-time Preview, Image (cross-domain)

2021-07-07 16:06:26 1817

原创 springboot邮件任务

目录前置准备邮件任务的使用邮件任务是一个比较常见的功能了,在很多网站中都支持用邮箱进行注册。我们可以邮件来自动向我们的目标发送消息。前置准备开启邮箱POP3/SMTP服务,以QQ邮箱为例[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wfvhtDat-1625644314782)(C:/Users/Lyj/AppData/Roaming/Typora/typora-user-images/1623154012842.png)]获取授权码[外链图片转存失败,

2021-07-07 16:01:43 221

原创 springboot定时任务

目录定时任务的使用cron表达式(取自阿里云官方)定时任务是指我们可以在某个时间内去执行某个任务。比如,我想用在我的网站上凌晨给用户推送一条恐怖图片。定时任务的使用主启动类用注解@EnableScheduling开启定时任务支持@SpringBootApplication@EnableScheduling //开启定时任务功能public class SpringbootTestrApplication { public static void main(String

2021-07-07 15:49:33 217

原创 springboot异步任务

springboot异步任务在某些不设计数据修改的高并发任务中,有些情况下我们想要达到更好的用户体验感,而不是漫长的等待后台的响应(发邮件)。这个时候可以将这个任务设置为异步任务,即不等待后台相应直接完成后续。异步任务本质上时利用多线程实现的。异步任务的实现主启动类用注解@EnableAsync开启异步任务支持@SpringBootApplication@EnableAsync //开启异步注解功能public class SpringbootTestrApplicat

2021-07-07 15:45:43 190

原创 springboot集成Swagger

目录初识Swagger配置拓展swagger注解语法swagger皮肤个性化初识Swagger号称世界上最流行的API框架Restful Api 文档在线自动生成器 => API 文档 与API 定义同步更新直接运行,在线测试API支持多种语言 (如:Java,PHP等)官网:https://swagger.io/Swagger作为一个框架,我们需要引入第三方jar包,并且在springboot中进行配置,才可以基于他们的语法来使用他们的功能配置引入依赖

2021-07-07 15:39:32 184 1

原创 springboot集成shiro

springboot集成shiroShiro和Security其实还是蛮类似的,至少大致的流程是差不多的,区别在于shiro通过token来传递前端的数据,而Security通过绑定特定的页面和属性来实现前端数据的传输。shiro和Security对数据处理功能的封装方式不一样。而如果我们需要使用Security,只需要自定义一个AuthorizingRealm,并且将自定义的Realm注入容器,并且设置为DefaultWebSecurityManagerInfo的属性,并将DefaultWe

2021-07-07 15:34:06 125

原创 springboot集成Security

springboot集成Security如果所示,我们的security的工作流程。我们只需要去定义我们自己的WebSecurityConfigurerAdapter并且重写两个核心的配置方法,就可以使用Secutiry进行我们的安全控制工作。Security是通过拦截器的思想来完成我们的工作的,我们也可以通过拦截器来完成我们类似的工作。拦截所有的请求,进行用户校验和请求放行。使用前置(导入依赖)<dependency> <groupId>org.springf

2021-07-07 15:32:46 211

css小黑记事本专用效果

css小黑记事本专用效果

2021-04-13

baidu.html静态源码

适合自己使用,用于测试bs4的功能和使用

2020-12-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除