自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 收藏
  • 关注

原创 面试笔记-2021007

目录1.什么是进程?什么是线程?2.JVM、JRE、JDK的关系?3.JVM中可以运行多种语言吗?4.JVM有哪些内存区?5.堆空间大小怎么配置?各区域怎么划分?6.JVM中那些内存区域会发生内存溢出(OOM)栈溢出(StackOverflowError)堆溢出(OutOfMemoryError:Java heap space)方法区溢出(OutOfMemoryError:Metaspace)堆外内存(OutOfMemoryError:Direct buffer memory)7.JVM在创建对象时采取了哪

2021-10-07 14:01:45 216

原创 【错误笔记】docker-compose构建失败

背景基于官方的docker-compose文档构建compose服务环境CentOS / 7.9 x86_64 (64bit)Docker version 1.13.1, build 7d71120/1.13.1问题下载compose巨慢无比原因:墙解决:使用国内站点提供的下载地址curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`unam

2021-08-06 17:42:10 1056 3

原创 【设计模式(23)】行为型模式之访问者模式

个人学习笔记分享,当前能力有限,请勿贬低,菜鸟互学,大佬绕道如有勘误,欢迎指出和讨论,本文后期也会进行修正和补充生活中,同一类对象会存在不同的元素,每种元素也存在多种不同的逻辑和处理方式。比如医生开的处方药,医生会给出不同的组合,患者也有不同的剂量和使用方式;电脑中的不同零件,我们需要根据不同的需求进行采购和组合,以及使用;这些数据结构相对稳定,但访问方式多种多样。我们可以用访问者模式,把访问方式从数据结构分离出来,并根据需求定制处理方法。进而避免在扩展的时候,修改数据结构。1.定义使.

2021-07-29 10:26:50 103

原创 【设计模式(22)】行为型模式之模板模式

个人学习笔记分享,当前能力有限,请勿贬低,菜鸟互学,大佬绕道如有勘误,欢迎指出和讨论,本文后期也会进行修正和补充开发过程中,我们通常会遇到这样的情况:我们已经制定好了方案,并确定了相关执行步骤,但某些具体的步骤还未知,或者说具体的步骤与环境相关如,乘坐飞机、火车等交通工具出远门,都需要买票-验票进站-等车-上车-下车-出站等一套流程,但具体需要处理的细节却不完全一样,买票的渠道、验票进站的步骤、上下飞机/火车的方式等等,都不一样。那么,我们可以把这些规定了流程或格式的实例定义成模板,允许使用者.

2021-07-20 11:45:31 84

原创 【设计模式(21)】行为型模式之策略模式

个人学习笔记分享,当前能力有限,请勿贬低,菜鸟互学,大佬绕道如有勘误,欢迎指出和讨论,本文后期也会进行修正和补充现实中,对于同一个目标,我们通常有多种策略可以选择,比如出行可以乘坐飞机、乘坐火车、骑车或者自己开车等等,支付方式可以选择微信支付、支付宝、刷卡支付等等,根据实际情况我们自行选择合适的方案开发中也是如此,对于同一功能,我们可以采取不同的算法或者策略进行实现。比如对数据进行排序可以使用冒泡排序、选择排序、快速排序等等,对于短信服务我们可以使用腾讯、阿里、亿速等等提供的服务如果用多重条.

2021-07-13 18:43:04 80 1

原创 【设计模式(20)】行为型模式之状态模式

个人学习笔记分享,当前能力有限,请勿贬低,菜鸟互学,大佬绕道如有勘误,欢迎指出和讨论,本文后期也会进行修正和补充人都有喜怒哀乐,在不同的情绪下,我们可能会作出不同的行为,进而影响外界事物;而外界事物也可能影响我们的情绪,导致我们作出不同的行为(完美闭环)开发中的对象,有时候也会根据不同的情况作出不同的行为,而对象与外部事件交互的时候,也可能改变自身的状态,进而行为也发生改变对于有多种状态的对象,传统的解决方案是枚举所有的情况,使用条件判断语句if-else或者switch-case来判断,但对.

2021-07-01 10:18:47 67

原创 【设计模式(19)】行为型模式之观察者模式

个人学习笔记分享,当前能力有限,请勿贬低,菜鸟互学,大佬绕道如有勘误,欢迎指出和讨论,本文后期也会进行修正和补充前言前面有一篇文章已经介绍了订阅/发布模式,即生产者和消费者通过一个中介者来交互生产者只负责向中介传递数据,不关心其余步骤消费者在中介者处进行注册,告知中介者自己需要数据中介者接受来自生产者的数据,并传递给在自己这里注册过的消费者当生产者只有一个的时候,可以省略掉中介者,直接在生产者处注册消费者通常满足N-1-N或者1-N的交互模型消费者在中介者处或者直接向生产者订阅.

2021-06-29 17:17:15 135

原创 【设计模式(18)】行为型模式之备忘录模式

个人学习笔记分享,当前能力有限,请勿贬低,菜鸟互学,大佬绕道如有勘误,欢迎指出和讨论,本文后期也会进行修正和补充前言常说,”世上没有后悔药“,现实中的确如此,但在计算机应用中,我们大量提供了”后悔“的机会,以防我们需要弥补自己的”过失“比如,游戏玩家非常熟悉的“存档”功能(SL大法好),编辑器的撤销/重做功能功能,数据库与操作系统的备份功能等等比如前两天,字节的某老哥删掉了公司的全部1GB以下模型,如果不能恢复数据,恐怕我们讨论的就不只是去留问题了。。。即,保存一个对象的某个状态,以便在.

2021-06-28 16:35:27 79

原创 【设计模式(17)】行为型模式之中介者模式

个人学习笔记分享,当前能力有限,请勿贬低,菜鸟互学,大佬绕道如有勘误,欢迎指出和讨论,本文后期也会进行修正和补充前言相信很多人都对更换手机号有所顾虑,或者体验过了这种麻烦——通知每个人自己手机号变更了,亲友朋友同事上司全都得通知一遍,万一漏了,就失联了,甚至还得确保他们收到且更换了通讯录中你的号码那么,我们能不能将手机号存在一个中介处,我们只需要告知中介处我们的新手机号。当有人想找我们的时候,他们也只需要询问中介就行了。比如公司、班级、家庭的通讯录,自己手机号或者地址修改后,也同步修改一下就.

2021-02-25 14:05:17 198

原创 【设计模式(16)】行为型模式之迭代器模式

个人学习笔记分享,当前能力有限,请勿贬低,菜鸟互学,大佬绕道如有勘误,欢迎指出和讨论,本文后期也会进行修正和补充前言学习c/c++的时候,有两种常用的数据存储结构——**链表 **& 数组,两种结构都提供了自己的遍历方法。总所周知,常规意义上的数组是连续的内存结构,即整个数组的内存空间在一起,查找的时候可以从首地址往后找目标就行;而链表是非连续的,每个节点存储本节点数据和下一个节点的地址,内存空间不要求连续,查找的时候从首节点,不断查询下一个节点,直到找到目标;然而在实际开发中,根.

2020-12-22 16:44:37 106

原创 【SpringSecurity】初识与集成

个人学习笔记分享,当前能力有限,请勿贬低,菜鸟互学,大佬绕道如有勘误,欢迎指出和讨论,本文后期也会进行修正和补充前言之前介绍过Shiro,作为SpringSecurity的精简版,已经具备了大部分常用功能,且更加便于使用,因而一定程度上成为了SpringSecurity的替代品。相比之下,SpringSecurity功能更加强大完善,通过调整和组合其中的组件,能得到一个高度自定义的安全框架。本文中,将基于SpringSecurity+Jwt进行学习。1.介绍1.1.简介SpringS.

2020-12-08 18:34:21 310

原创 【设计模式(15)】行为型模式之解释器模式

个人学习笔记分享,当前能力有限,请勿贬低,菜鸟互学,大佬绕道如有勘误,欢迎指出和讨论,本文后期也会进行修正和补充前言在初高中的时候我们都学过语法,无论是汉语还是英语都有自己所规范的语法(尽管大部分人平时并不遵守。。。)比如同桌的你,按照语法,的表示修饰关系,你为中心词,同桌为定语规则定下来了,那么我们可以设计一个程序来识别这种语法的语句,比如头秃的程序猿,改不完的bug等等。。。再举个栗子,对于算术式1+(2*3-4)*5我们需要做的第一件事就是将其从外向里拆开,拆解过程如下将1+.

2020-11-10 17:57:33 83

原创 【设计模式(14)】行为型模式之命令模式

个人学习笔记分享,当前能力有限,请勿贬低,菜鸟互学,大佬绕道如有勘误,欢迎指出和讨论,本文后期也会进行修正和补充前言生活中,一件事情的请求者和执行者不一定是同一个人。比如我们申请售后的时候,将需要的信息等告知售后,然后由售后来安排处理,我们可以去做别的事情了;电视遥控器向电视发送命令,电视来执行;老板给我们分配任务等等。。。好处是我们不需要将请求者与执行者建立绑定关系,也不需要占用请求者的时间。在开发中,我们也会需要解除请求者和执行者之间的耦合,一方面利于扩展,一方面使得两者不必同步运作。.

2020-11-06 18:27:52 102

原创 【设计模式(13)】行为型模式之责任链模式

个人学习笔记分享,当前能力有限,请勿贬低,菜鸟互学,大佬绕道如有勘误,欢迎指出和讨论,本文后期也会进行修正和补充前言在我上个公司,如果需要请假一天,只需要获取组长同意就可以了,通知一下人事就溜;但是如果长于1天不超过3天,那么需要跟项目经理说明情况,获得允许,同样需要告知人事部;长于3天则需要获得部门经理的同意,再告知人事;也就是说,如果要请假我得先知道这些规则,并且知道所有领导的姓名和练习方式,小公司还好,大公司这可就麻烦了。很多公司采取的方式是跟自己的直属上司汇报即可,比如我报备给组长,.

2020-10-30 18:35:11 99 2

原创 【设计模式(12)】结构型模式之代理模式

个人学习笔记分享,当前能力有限,请勿贬低,菜鸟互学,大佬绕道如有勘误,欢迎指出和讨论,本文后期也会进行修正和补充前言“中介”这个职业大家都知道,比如买房租房,我们一般是与中介进行交流、看房、议价等等,甚至我上一次租的房住了一年都没见过房东,同理房东也没见过我。。。还有譬如买火车票并不需要去火车站,在携程或者12306app上就可以购买;订酒店通过美团或者携程也能够完成,并不需要本人去酒店;还有浏览那些“不存在”的网站的时候,我们需要“梯子“等等以租房中介来说,一方面他是我的中介,代替我去跟.

2020-10-29 16:18:03 103

原创 【设计模式(11)】结构型模式之享元模式

个人学习笔记分享,当前能力有限,请勿贬低,菜鸟互学,大佬绕道如有勘误,欢迎指出和讨论,本文后期也会进行修正和补充前言对于后端开发者而言,池化技术相当常见,比如线程池、数据库连接池、缓冲池,以及最最常见的Bean池对于Bean池,在系统初始化的时候初始化装载Bean对象,系统中需要使用的时候直接调用Bean池中的对象即可,而无需每次都去初始化一遍,以节省资源消耗针对String的性能优化,Java引用了缓存池的概念,即创建String类型数据的时候,会检查缓存池中是否有相同内容的String.

2020-10-27 18:22:47 133

原创 【设计模式(10)】结构型模式之外观模式

个人学习笔记分享,当前能力有限,请勿贬低,菜鸟互学,大佬绕道如有勘误,欢迎指出和讨论,本文后期也会进行修正和补充前言生活中,如果有什么事需要去营业厅等站点办理,我们希望的是给接待员需要的信息,然后他们去办理完成,走人!然而有些时候,我们得到的回应是我们需要先做什么,再做什么,再去哪做什么blablabla…后者一看就不专业是不是?做个事你们做不就得了吗,不然我来营业厅干嘛?掏出手机百度一下不就得了?作为专业的程序猿,那我们写的代码肯定得专业一些。对于一个系统,我们隐藏其内部细节,并向外部.

2020-10-26 16:16:27 81

原创 【设计模式(九)】结构型模式之装饰器模式

个人学习笔记分享,当前能力有限,请勿贬低,菜鸟互学,大佬绕道如有勘误,欢迎指出和讨论,本文后期也会进行修正和补充前言中秋刚过没多久,虽然我这种粗人对月饼无感,但是公司发的肯定得收的嘛拿回家当零食吃算了,一个硬纸袋,打开是一个盒子,盒子打开时十多个小盒子,小盒子打开是塑料包装的月饼,撕开塑料包装,终于能吃了吃了一口,emmm就这?还没小时候吃的冰糖五仁月饼好吃呢,弄这么花里胡哨就一块味道并不咋地的月饼,花里胡哨包装一层又一层,何必呢?还不如改善工艺做好吃点说的再难听点,这些精心包装的月饼,.

2020-10-26 11:31:19 153 1

原创 【设计模式(八)】结构型模式之组合模式

个人学习笔记分享,当前能力有限,请勿贬低,菜鸟互学,大佬绕道如有勘误,欢迎指出和讨论,本文后期也会进行修正和补充前言这个是我随手截的文件目录,这样的结构都很眼熟吧?一个个文件,组成一个文件夹,文件和文件夹又可以组成更大的文件夹,进而形成一个树形结构那么,我们在点开的时候,需要先确认目标是文件夹或者文件,文件就打开,文件夹则是展开下一级也就是说我们对于"部分"与“整体”采取了不同的方案,但是这样带来了一些不必要的麻烦,我们只想打开这个目标,具体怎么打开那是你们自己的事情进而言之,客户只关.

2020-10-22 17:20:14 199 1

原创 【设计模式(七)】结构型模式之桥接模式

个人学习笔记分享,当前能力有限,请勿贬低,菜鸟互学,大佬绕道如有勘误,欢迎指出和讨论,本文后期也会进行修正和补充前言设想如果要绘制矩形、圆形、椭圆、正方形4个形状,且各有红、黄、蓝3种颜色,那么显然一共有12种不同的结果如果有m个形状,n个颜色,那么需要定义m*n个类,看上去可以接受是吗?那如果要新增一种颜色,就得多定义n个类,同理增加一种形状也需要增加m个类,修改的话同理也要修改大量的类这个维护成本可就高的过分了,耦合度太高,而且违背了单一职责原则,那咋办嘛?换个思路,其实可以将形状与.

2020-10-21 16:08:04 123

原创 【设计模式(六)】结构型模式之适配器模式

个人学习笔记分享,当前能力有限,请勿贬低,菜鸟互学,大佬绕道如有勘误,欢迎指出和讨论,本文后期也会进行修正和补充前言将一个类的接口转成客户期望的另外一个接口。适配器模式使得原本由于接口不匹配而不能一起工作的那些类可以一起工作。——Gang of Four适配器英文为adapter,如果你是一位Android开发工程师,一定不会对这个单词陌生,在Android开发中,我们经常需要设计适配器,对数据加以处理使其以合适的形式在view中展示出来。简而言之就是数据原先无法以合适的形式展示,我们需要适配.

2020-10-16 17:40:46 244

原创 【设计模式(五)】创建型模式之建造者模式

个人学习笔记分享,当前能力有限,请勿贬低,菜鸟互学,大佬绕道如有勘误,欢迎指出和讨论,本文后期也会进行修正和补充前言建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象如果经常使用组件,Builder这个单词是不是很眼熟?很多第三方组件都会使用builder来构造对象,通过向builder设置参数,即可或自己想要的对象重点就在于==设置参数==,我们可以通过设置参数修改目标对象的细节,之前介绍的工厂模式只能选择产品类型,而无法修改参数。例如我们购买一台.

2020-10-10 10:09:06 137

原创 【设计模式(四)】创建型模式之原型模式

【设计模式(四)】原型模式个人学习笔记分享,当前能力有限,请勿贬低,菜鸟互学,大佬绕道如有勘误,欢迎指出和讨论,本文后期也会进行修正和补充前言原型模式是一种创建型设计模式, 使你能够复制已有对象, 而又无需使代码依赖它们所属的类。原型(Prototype)模式的定义如下:用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型相同或相似的新对象。在这里,原型实例指定了要创建的对象的种类。用这种方式创建对象非常高效,根本无须知道对象创建的细节。当直接创建对象的代价比较大时,则采用这种

2020-10-09 12:11:04 195

原创 【设计模式(三)】创建型模式之工厂模式

【设计模式(三)】工厂模式个人学习笔记分享,当前能力有限,请勿贬低,菜鸟互学,大佬绕道如有勘误,欢迎指出和讨论,本文后期也会进行修正和补充前言单例模式也是Java最简单和常见的模式之一这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象根据产品类型和抽象成都可分为==简单工厂模式、工厂方法模式和抽象工厂模式==实际上前面介绍的单例模式,也属于工厂模式。1.介绍使用目

2020-09-29 17:48:52 179

原创 【设计模式(二)】创建型模式之单例模式

【设计模式(一)】介绍与设计原则个人学习笔记分享,当前能力有限,请勿贬低,菜鸟互学,大佬绕道如有勘误,欢迎指出和讨论,本文后期也会进行修正和补充前言单例模式是Java最简单和常见的模式之一都知道Java中,类需要被实例化为对象才能使用,因而同一个类可以被实例化为多个对象,但是部分场景我们需要使用同一个对象,这就是单例模式出现的原因1.介绍使用目的:保证一个类仅有一个实例,并提供一个访问他的全局访问点使用时机:需要节省系统资源,或者需要在多个地方公用类里面的数据等情况解决问题:频繁创

2020-09-28 18:21:07 179

原创 【设计模式(一)】设计模式概览与六大设计原则

【设计模式(一)】介绍与设计原则个人学习笔记分享,当前能力有限,请勿贬低,菜鸟互学,大佬绕道如有勘误,欢迎指出和讨论,本文后期也会进行修正和补充前言本文为自学笔记,当前水平有限,如有出错或者纰漏的地方欢迎指正1.介绍设计模式代表了最佳的实践,是开发人员在开发过程中对一般问题的解决方案。这些方案并不是语法规定,而是众多开发人员长时间试验和总结出来,用于提交代码可复用性、可维护性、可读性、稳健性以及安全性的解决方案2.六大设计原则设计模式有六大原则Single Respo

2020-09-24 16:22:53 154

原创 【算法刷题】无重复字符的最长子串

本文为个人解题思路整理,水平有限,有问题欢迎交流概览第一次解出来没花多长时间,但是提交后发现击败了30%的人,也就是意味着还有大幅度优化的空间,于是再优化了一下难度:中等核心知识点:滑动窗口 + 贪心题目来源力扣:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/题目内容给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度样例输入1pwwkew输出1.

2020-09-22 12:03:45 194

原创 【算法刷题】全排列 II

本文为个人解题思路整理,水平有限,有问题欢迎交流概览这题想做出来其实很简单,但是可以通过剪枝不断的优化性能,又是一道表面深搜实则优化的题难度:中等核心知识点:DFS(回溯) + 数据结构题目来源力扣:https://leetcode-cn.com/problems/permutations-ii/题目要求给定一个可包含重复数字的序列,返回所有不重复的全排列。样例输入1:[1,1,2]输出1:[ [1,1,2], [1,2,1], [2,1,1]].

2020-09-18 17:32:03 133

原创 【算法刷题】LRU缓存模拟

本文为个人解题思路整理,水平有限,有问题欢迎交流概览这题有两个解决方案,第二个的性能比第一个稍强,但是建议练习第一种方法,当然实际使用中性能优先难度:中等核心知识点:自定义链表 + map题目来源牛客:https://www.nowcoder.com/practice/e3769a5f49894d49b871c09cadd13a61力扣:https://leetcode-cn.com/problems/lru-cache-lcci/本文依照牛客的要求解答,力扣的解决方案也是一样的.

2020-09-17 20:54:04 536

原创 【算法刷题】翻转二叉树

本文为个人解题思路整理,水平有限,有问题欢迎交流概览一个简单的递归而已,入门级算法题,其实没啥记录的价值,写出来是因为看到个有趣的东西,莫名可爱难度:入门核心知识点:递归题目来源力扣:https://leetcode-cn.com/problems/invert-binary-tree/题目内容翻转一颗二叉树样例数据源 4 / \ 2 7 / \ / \1 3 6 9输出 4 / \ 7 .

2020-09-17 17:05:49 202 1

原创 【算法刷题】解数独

本文为个人解题思路整理,水平有限,有问题欢迎交流概览本题已数独问题为背景,要求计算出唯一解,表面是一个暴力深搜和回溯的问题,然而实际上如何优化才是精华所在难度:中等核心知识点:DFS(回溯)、状态压缩、位运算题目来源力扣:https://leetcode-cn.com/problems/sudoku-solver题目内容编写一个程序,通过已填充的空格来解决数独问题。一个数独的解法遵循如下规则:数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字.

2020-09-16 16:53:17 297

原创 【JAVA定时器】四种常见定时器的原理和简单实现

个人学习笔记分享,当前能力有限,请勿贬低,菜鸟互学,大佬绕道如有勘误,欢迎指出和讨论,本文后期也会进行修正和补充前言定时器顾名思义,即定时触发某个事件,分离开来,即包含三个因素:定时,触发,某个事件,本文也将以此为基础介绍五种常见的定时器本文只做基于SpringBoot的示例,其余版本的请自行查阅资料,大同小异1.介绍1.1.目的定时器的目的即为了在某个时间点,程序自身主动触发某个事件,而不需要外力去开启或者启动,以节省人力并统一管理1.2.示例场景管理系统,需要每日12点.

2020-09-11 17:46:37 13151 1

原创 【Quartz】初识与基本使用

个人学习笔记分享,当前能力有限,请勿贬低,菜鸟互学,大佬绕道如有勘误,欢迎指出和讨论,本文后期也会进行修正和补充前言本文只做基于SpringBoot的示例,其余版本的请自行查阅资料,大同小异1.介绍Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,完全由Java开发,可以用来执行定时任务,类似于java.util.Timer。但是相较于Timer, Quartz增加了很多功能:持久性作业 - 就是保持调度定时的状态;作业管理 - 对调.

2020-09-10 18:22:24 350

原创 【JWT】初识与集成,及优缺点

个人学习笔记分享,当前能力有限,请勿贬低,菜鸟互学,大佬绕道如有勘误,欢迎指出和讨论,本文后期也会进行修正和补充前言随着分布式的普及,session的成本正变得越来越高,因而一种不需要session,而直接将身份信息放在token中的方案应运而生–JWT请留意,本文主要整理相关思路,为方便理解,示例代码并不完整,更谈不上严谨若需要实际使用的demo,请直接查看整理后的代码,完整demo会传到github或码云1.介绍1.1.什么是JWTJWT全程为Json web token,是一.

2020-09-04 17:51:57 422 2

原创 【shiro】初识与集成

【shiro】初识与集成个人学习笔记分享,当前能力有限,请勿贬低,菜鸟互学,大佬绕道如有勘误,欢迎指出和讨论,本文后期也会进行修正和补充前言权限管理对于一个成熟的项目是极为基础且必要的部分,我们必须知道来者何人,才能判断这个人能做什么不能做什么而shiro正是解决方案中最常见的一种请留意,本文主要整理shiro相关思路,为方便理解,示例代码并不完整,更谈不上严谨若需要实际使用的demo,请直接查看整理后的代码,完整demo会传到github或码云1.介绍shiro是Apache下的一

2020-08-24 18:38:48 417

原创 【redis】生产者/消费者模式与订阅/发布模式

个人学习笔记分享,当前能力有限,请勿贬低,菜鸟互学,大佬绕道如有勘误,欢迎指出和讨论,本文后期也会进行修正和补充前言设想一个场景:你和你女朋友(假设有)打算出门,你问你女朋友打扮好了没,她说还没。于是过了五分钟,你再去问,她说还没。再过五分钟,你又问,她说再等会儿再过五分钟,你又问,她说烦不烦一直问,多等会能咋了??。。。。2000 years later,她准备好了,你已经准备打开网抑云了其实解决方案很简单,你跟她说准备好了喊你,而你做好随时被喊的准备即可设想如下模型:消费者A.

2020-08-24 18:30:16 2100

原创 【SpirngBoot组件(4)】Redis集成

个人学习笔记分享,当前能力有限,请勿贬低,菜鸟互学,大佬绕道如有勘误,欢迎指出和讨论,本文后期也会进行修正和补充前言通常数据存储在两个位置:数据库&缓存.然而对于使用频率较高的数据,频繁请求数据库的代价过于昂贵,而自带的缓存机制又过于简陋,这时候第三方服务redis就出现了。redis完美解决了这些问题,能够快速的进行数据存取,可以将高频率的数据存于redis,不用再去麻烦数据库了,同时还完美契合了消息队列的实现方案。因而在大小项目中redis都成为了一个必要的组件。1.介绍r.

2020-08-24 18:28:46 87

原创 【SpirngBoot组件(3)】全局异常捕获

个人学习笔记分享,当前能力有限,请勿贬低,菜鸟互学,大佬绕道如有勘误,欢迎指出和讨论,本文后期也会进行修正和补充前言在未进行全局捕获的情况下,异常有两种处理结果主动try…catch捕获,对每种情况进行针对性处理。缺点如下:代码冗长,需要考虑各种各样的情况,无端增加工作量;人非完人,不可能考虑完整所有情况,有部分情况甚至无从捕获被动处理,不捕获,异常信息最终将会被直接打印到前端。缺点如下:正常用户根本看不懂异常信息,大量的异常信息对于用户而言跟乱码无异异常信息会打印出后端的信.

2020-08-24 18:27:50 161

原创 【SpirngBoot组件(2)】统一返回结果格式与自定义异常

个人学习笔记分享,当前能力有限,请勿贬低,菜鸟互学,大佬绕道如有勘误,欢迎指出和讨论,本文后期也会进行修正和补充前言统一的返回结果格式是项目所必须的组件,应在搭建项目前就定好格式,前端与后端都按照该约定进行数据的组装和解析自定义异常则是为了统一化处理各种异常情况,诸如密码错误、用户不存在此类,若都分别处理,则代码过于冗长,且不易集中处理(配合全局异常捕获)1.介绍统一返回结果通常需要至少三个参数:返回码、返回信息、返回数据,其余参数请自行追加统一异常通常继承自RuntimeExceptio.

2020-08-24 18:26:32 109

原创 【SpirngBoot组件(1)】Swagger集成

个人学习笔记分享,当前能力有限,请勿贬低,菜鸟互学,大佬绕道如有勘误,欢迎指出和讨论,本文后期也会进行修正和补充前言使用Swagger可以方便快捷的查看和调试接口,而不再需要借助其他第三方工具(如postman),更不需要在茫茫代码中寻找接口,其相关注解也一定程度上提高了代码可读性。因此,swagger几乎已经算的上是一个项目的必要组件了。1.介绍1.1.Swagger、Spring、SpringFoxSwagger是一个流行的API框架,对整个API开发周期提供解决方案,包括设计、编码.

2020-08-24 18:25:30 187

空空如也

空空如也

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

TA关注的人

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