自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

lgxzzz的博客

记录与分享

  • 博客(922)
  • 收藏
  • 关注

转载 Hibernate-validator数据验证

3. @AssertFalse: 检查元素是否为 false,【支持数据类型:boolean、Boolean】4. @AssertTrue: 检查元素是否为 true,【支持数据类型:boolean、Boolean】5. @DecimalMax(value=, inclusive=):【支持数据类型:BigDecimal、BigInteger、CharSequence、(byte、short、int、long 和其封装类)】

2023-05-01 23:21:00 1232

转载 java数据校验spring数据校验hibernate-validator一篇文章搞懂

3、上述两点只是描述了java开发进行数据校验的标准方式,但是我们开发中往往都会使用spring,那么spring其实也是有自己的校验接口的。由此可见,我们@Valid注解提供了递归校验,这样我们只要在对应的javaBean中写上注解,那么校验起来是非常有效的。上述这种spring的校验接口,相当于每个javaBean都要去写对应的XxxValidator接口,其实是非常不方便的。虽然我们在前台js进行了拦截,比如submit总体校验一遍,或者每个form控件blur失去焦点的时候进行了校验,但是。

2023-05-01 22:51:15 1105 1

转载 tomcat的启动流程及原理

tomcat的启动流程及原理

2023-01-29 16:43:25 1402

转载 TOMCAT启动过程原理详解

TOMCAT启动过程原理详解

2023-01-29 16:07:14 624

转载 web安全之XSS攻击原理及防范

一:什么是XSS攻击? 二:反射型XSS 三:存储型XSS 四:DOM-based型XSS 五:SQL注入 六:XSS如何防范? 1. cookie安全策略 2. X-XSS-Protection设置 3. XSS防御HTML编码 4. XSS 防御HTML Attribute编码 5. XSS防御之javascript编码 6. XSS 防御之 URL 编码 7. XSS 防御之 CSS 编码 8. 开启CSP网页安全政策防止XSS攻击 回到顶部一:什么是X

2022-05-27 20:18:52 8043 1

转载 架构师之道 秒杀系统优化思路

本文曾在“架构师之路”上发布过,近期支援Qcon-AS大会,在微信群里分享了该话题,故对原文进行重新整理与发布。一、秒杀业务为什么难做1)im系统,例如qq或者微博,每个人都读自己的数据(好友列表、群列表、个人信息);2)微博系统,每个人读你关注的人的数据,一个人读多个人的数据;3)秒杀系统,库存只有一份,所有人会在集中的时间读和写这些数据,多个人读一个数据。例如:小米手机每周二的秒杀,可能手机只有1万部,但瞬时进入的流量可能是几百几千万。又例如:12306抢票,票是有限的,库存一份,瞬时

2022-05-27 20:17:18 386

转载 心态:晋升的为什么不是你--架构师之道

2011年底的时候,在网上看了一篇文章,《能让你少奋斗10年的工作经验》,其中大部分条目与工作态度相关,有实例,可操作,故有此感慨。职场纵横,如果下面8条,你也符合部分状态,或许,这就是“晋升的为什么不是你”的答案了。一、心灵停留在舒适区是不可原谅的状态为:1)期望舒适,不愿被打扰,不愿被push,不愿被职责,不愿主动关心别人,不愿思考如何提高团队效率;2)会议上,消极听取领导意见,消极待命,很死的完成交予的任务;3)不主动接触其他同事,聚会不主动发言,没有做好社交的准备;把

2022-05-27 20:16:24 354

转载 领域驱动模型(DDD)在美团外卖活动管理业务的应用

什么是领域驱动模型?2004年Eric Evans 发表《领域驱动设计——软件核心复杂性应对之道》(Domain-Driven Design –Tackling Complexity in the Heart of Software),简称Evans DDD,领域驱动设计思想进入软件开发者的视野。领域驱动设计分为两个阶段: 1、以一种领域专家、设计人员、开发人员都能理解的通用语言作为相互交流的工具,在交流的过程中发现领域概念,然后将这些概念设计成一个领域模型; 2、由领域模型驱动软件设计

2022-05-26 17:05:11 1079

转载 复杂度应对之道 - COLA应用架构

前言 从业这么多年,接触过银行的应用,Apple的应用,eBay的应用和现在阿里的应用,虽然分属于不同的公司,使用了不同的架构,但有一个共同点就是都很复杂。导致复杂性的原因有很多,如果从架构的层面看,主要有两点,一个是架构设计过于复杂,层次太多能把人绕晕。另一个是根本就没架构,ServiceImpl作为上帝类包揽一切,一杆捅到DAO(就简单场景而言,这种Transaction Script也还凑合,至少实现上手都...

2022-05-26 16:58:10 3827 1

转载 图说设计模式

软件模式是将模式的一般概念应用于软件开发领域,即软件开发的 总体指导思路或参照样板。软件模式并非仅限于设计模式,还包括 架构模式、分析模式和过程模式等,实际上,在软件生存期的每一 个阶段都存在着一些被认同的模式。本书使用图形和代码结合的方式来解析设计模式;每个模式都有相应的对象结构图,同时为了展示对象间的交互细节, 我会用到时序图来介绍其如何运行;(在状态模式中, 还会用到状态图,这种图的使用对于理解状态的转换非常直观)为了让大家能读懂UML图,在最前面会有一篇文章来介绍UML图形符号;在系

2022-05-26 16:53:40 179

转载 23 种设计模式详解(全23种,含代码样例)

设计模式的分类 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。 A、创建模式(5种) 工...

2022-05-25 17:34:46 8226 1

转载 23种设计模式总结

一、什么是设计模式设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。项目中合理的运用设计模式可以完美的解决很多问题,每种模式在现在中都有相应的原理来与之对应,每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的核心解决方案,这也是它能被广泛

2022-05-25 17:16:21 77922 6

转载 六大设计原则(SOLID)

一、SOLID设计模式的六大原则有:Single Responsibility Principle:单一职责原则 Open Closed Principle:开闭原则 Liskov Substitution Principle:里氏替换原则 Law of Demeter:迪米特法则 Interface Segregation Principle:接口隔离原则 Dependence Inversion Principle:依赖倒置原则把这六个原则的首字母联合起来(两个 L 算做一个)就是

2022-05-25 17:14:43 1136

转载 前后端不分离到分离演变,优势,前后端接口联调,排错及优化

1|0前后端分离,不分离简介1|1前言前后端分离已成为互联网项目开发的业界标准使用方式,通过nginx+tomcat的方式(也可以中间加一个nodejs)有效的进行解耦,并且前后端分离会为以后的大型分布式架构、弹性计算架构、微服务架构、多端化服务(多种客户端,例如:浏览器,车载终端,安卓,IOS等等)打下坚实的基础。这个步骤是系统架构从猿进化成人的必经之路。 核心思想是前端html页面通过ajax调用后端的restuful api接口并使用json数据进行交互。名词解释Web服务器

2022-05-24 18:32:49 3452

转载 Devops

最近老是碰到这个名词,所以想了解一下这个到底是撒玩意?DevOps(Development和Operations的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。它是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。它的出现是由于软件行业日益清晰地认识到:为了按时交付软件

2022-05-24 18:28:26 180

转载 通用技术 关于线上监控的思考总结

前言近期和大佬们对规划,梳理新财年要做的事情,有非常重要的一项就是线上监控,对于线上监控,大家都最熟悉不过,凡是在生产环境上运行的系统,或多或少都会有监控,但是否有思考过哪些监控是有效的,监控的目的是什么,监控告警出来之后又是怎么的一轮操作,今天我们来探讨关于线上监控的相关经验业务系统分析 在实施线上监控之前的梳理,核心还是要对业务系统有比较深刻的了解,才能对症下药,对于业务系统的梳理,可以套一下的框架 简单举个例子,从阶段来说,一般初创期和快速迭代的系统,业务和功能都未必.

2022-05-24 18:26:24 250

转载 架构之道--现代发布模式

一、前言根据2017年的DevOps发展报告,高效能组织和低效能组织在软件交付的效率上有数量级上的差异。技术组织的软件交付能力是一种综合能力,涉及众多环节,其中发布是尤为重要的环节。作为技术人员,大家可能听说过“滚动发布”和“蓝绿发布”等术语,但是很多人并不清楚这些术语背后的原理。本文试图总结当前主流的发布策略,每个的优劣,适用性,让开发人员特别是架构师对现代发布技术有一个更为清晰全面的认识,让大家能够根据自己的企业上下文,对发布策略做出正确的选型和实践。二、单服务器组发布先解释下单服务器组

2022-05-23 15:24:11 327

转载 UML 用例图、顺序图、状态图、类图、包图、协作图、流程图

面向对象的问题的处理的关键是建模问题。建模可以把在复杂世界的许多重要的细节给抽象出。许多建模工具封装了UML(也就是Unified Modeling Language™),这篇课程的目的是展示出UML的精彩之处。UML中有九种建模的图标,即: 用例图 类图 对象图 顺序图 协作图 状态图 活动图 组件图 配置图 本课程中的某些部分包含了这些图的细节信息的页面链接。而且每个部分都有一个小问题,测试一下你对这个部分的理

2022-05-23 15:21:54 3953

转载 敏捷开发知识体系笔记

敏捷开发知识体系整体框架 敏捷开发工程实践 项目管理 迭代开发风险价值生命周期多级项目规划完整团队每日站立会议任务板燃尽图 需求管理 需求订单业务流程草图用例驱动开发用户故事 架构 演进的架构演进的设计基于组件的架构设计 开发 结对编程测试驱动开发重构代码规范 测试 单元测试并行测试测试管理 变更管理 持续集成自动构建团队变更管理 敏捷开发管理实践描述 定义和特征说明主要角色主要活动...

2022-05-23 15:15:54 601

转载 国密SM2加解密Java工具类(附前端VUE代码)

1、SM2简述  RSA算法的危机在于其存在亚指数算法,对ECC算法而言一般没有亚指数攻击算法。  SM2椭圆曲线公钥密码算法:我国自主知识产权的商用密码算法,是ECC(Elliptic Curve Cryptosystem)算法的一种,基于椭圆曲线离散对数问题,计算复杂度是指数级,求解难度较大,同等安全程度要求下,椭圆曲线密码较其他公钥算法所需密钥长度小很多。  ECC算法描述:用户A选定一条适合加密的椭圆曲线Ep(a,b)(如:y2=x3+ax+b),并取椭圆曲线上一点,作为基点G。

2022-05-22 10:25:32 5398

转载 SM国密算法

- --首先先放几张图偶然见在国家宝藏节目看到了SM算法,由于名字奇特,所以倍感好奇于是百度了一波。其实就是国家密码局认定的国产密码算法。标准命名为SM+X(X=1,2,3,4……)当然这个名字的由来没有你们想象的那么邪恶,或许他只是一个优秀的人名缩写吧,比如说宋明旭什么的……这样的国产国密算法有很多种,其中SM1、SM4、SM7、祖冲之密码(ZUC)是对称算法;SM2、SM9是非对称算法;S...

2022-05-22 10:24:59 995

转载 非科班进大厂必备算法

基础数据结构的融合是成为庞大系统的基石。比如 Redis 中的跳跃表,数据库索引 B+树等,只有对基础的数据结构足够的熟悉才能更容易去理解稍微复杂的结构,就仿佛我们闯关打怪一样,一步一步解锁直到结局。今天想和大家一起分享的是常见数据结构以及面试中的高频手撕算法题,一定要去手动写这些代码,可说百分之七八十都是这些题,一定要好好掌握。1 数据结构链表属于数据结构中的线性结构的一种,我们先看看什么是数据结构 数据结构是:结构的定义+结构的操作 想必大伙儿应该...

2022-05-22 10:23:01 354

转载 数据结构常见的八大排序算法(详细整理)

八大排序,三大查找是《数据结构》当中非常基础的知识点,在这里为了复习顺带总结了一下常见的八种排序算法。常见的八大排序算法,他们之间关系如下:排序算法.png他们的性能比较:性能比较.png下面,利用Python分别将他们进行实现。直接插入排序算法思想:直接插入排序.gif直接插入排序的核心思想就是:将数组中的所有元素依次跟前面已经排好的元素相比较,如果选择的元素比已排序的元素小,则交换,直到全部元素都比较过。因此,从上面的描述中我们

2022-05-22 10:15:59 502

转载 动画图解:十大经典排序算法动画与解析,看我就够了(配代码完全版)

排序算法是《数据结构与算法》中最基本的算法之一。 排序算法可以分为内部排序和外部排序。 内部排序是数据记录在内存中进行排序。 而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。 常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。 用一张图概括: 时间复杂度与空间复杂度 关于时间复杂度: 平方阶 (O(n...

2022-05-21 11:33:35 5723 1

转载 解决Linux操作系统下AES解密失败的问题

现象描述:windows上加解密正常,linux上加密正常,解密时发生 如下异常:javax.crypto.BadPaddingException:Given final block not properly paddedat com.sun.crypto.provider.SunJCE_f.b(DashoA13*..)at com.sun.crypto.provider.SunJCE_f.b(DashoA13*..)at com.sun.crypto.provider.AESCipher.

2022-05-21 11:31:20 1667

转载 常用加密解密算法【RSA、AES、DES、MD5】介绍和使用

为了防止我们的数据泄露,我们往往会对数据进行加密,特别是敏感数据,我们要求的安全性更高。下面将介绍几种常用的加密算法使用。这些算法的加密对象都是基于二进制数据,如果要加密字符串就使用统一编码(如:utf8)进行编码后加密。 1.摘要算法 常用的摘要算法有MD5,SHA1。摘要算法是一个不可逆过程,就是无论多大数据,经过算法运算后都是生成固定长度的数据,一般结果使用16进制进行显示。 MD5和SHA1的区别:...

2022-05-21 11:29:34 5909

转载 数据结构中各种树

1. 二叉树 2. 二叉查找树 3. 平衡二叉树 3.1 平衡查找树之AVL树 3.2 平衡二叉树之红黑树 4. B树 5. B+树 6. B*树 7. Trie树  数据结构中有很多树的结构,其中包括二叉树、二叉搜索树、2-3树、红黑树等等。本文中对数据结构中常见的几种树的概念和用途进行了汇总,不求严格精准,但求简单易懂。回到顶部1. 二叉树  二叉树是数据结构中一种重要的数据结构,也是树表家族最为基础的结构。  二叉树的定义:二叉树的每个结点至多只有二棵子树(不存在度大

2022-05-18 17:02:29 1540

转载 浅谈分布式唯一ID的几种生成方案

前言在互联网的业务系统中,涉及到各种各样的ID,如在支付系统中就会有支付ID、退款ID等。那一般生成ID都有哪些解决方案呢?特别是在复杂的分布式系统业务场景中,我们应该采用哪种适合自己的解决方案是十分重要的。下面我们一一来列举一下,不一定全部适合,这些解决方案仅供你参考,或许对你有用。正文分布式ID的特性唯一性:确保生成的ID是全网唯一的。 有序递增性:确保生成的ID是对于某个用户或者业务是按一定的数字有序递增的。 高可用性:确保任何时候都能正确的生成ID。 带时间:ID里面包含时间,

2022-05-18 16:58:52 255

转载 Java使用RSA加密解密签名及校验

由于项目要用到非对称加密解密签名校验什么的,于是参考《Java加密解密的艺术》写一个RSA进行加密解密签名及校验的Demo,代码很简单,特此分享!RSA加密解密类:package com.ihep;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileReader;import java.io.F...

2022-05-18 16:57:13 1618

转载 RSA加密/解密 Decryption error异常解决

RSA加密/解密 Decryption error异常解决 import java.io.ByteArrayOutputStream;import java.security.Key;import java.security.KeyFactory;import java.security.KeyPair;import java.security.KeyPairGenerator;import java....

2022-05-16 21:17:48 4165

转载 你不得不知的几个互联网ID生成器方案

服务化、分布式已成为当下系统开发的首选,高并发操作在数据存储时,需要一套id生成器服务,来保证分布式情况下全局唯一性,以确保系统的订单创建、交易支付等场景下数据的唯一性,否则将造成不可估量的损失。基于时间戳比如流水号规则如下:XX-YYYYMMDD-N位随机数,这也是企业级应用开发常用的规则。此流水号对人比较友好,可识别性高,但容量受后面随机数的限制,且数据量越大,生成时难度越高。前三部分每天的流水号基本固定,后面的N位随机数生成后,需要校验此前不存在,可依赖redis的set机制,每天的随机数都写到

2022-05-16 21:12:51 1982

转载 [数据结构]--图(图的遍历,最小生成树,最短路径算法)

前言 在这里,如果大家对图或者数据结构还不太熟悉,想找一个动态的生成过程来参考,这是一个不错的网站. 知识框架 图的定义 在线性结构中,数据元素之间满足唯一的线性关系,每个数据元素(除第一个和最后一个外)只有一个直接前趋和一个直接后继; 在树形结构中,数据元素之间有着明显的层次关系,并且每个数据元素只与上一层中的一个元素(双亲节点)及下一层的多个元素(孩子节点)相关; 而在图形结构中,节点之间的...

2022-05-16 21:10:35 634

转载 说说http协议中的编码和解码

一、字符集与文字编码简介   1.计算机如何显示文字  我们知道,计算机是以二进制的“形式”来保存和处理数据的,也 就是说,不管我们使用键盘进行输入,还是让计算机去读取一个文本文件,计算机得到的原始内容是一些二进制序列,当需要对这些二进制序列进行显示时,计算机 会依照某种“翻译机制”(也就是编码方式),取到这些二进制序列所表示的每个文字的“轮廓描述”(点阵或者矢量图),知道了轮廓,计算机便可以将二进制序 列所表示的实际的文字形状显示到屏幕上了,这里面的思想和用学号来表示一个学生是一样的。(当然,这.

2022-05-11 17:43:32 2572

转载 x-www-form-urlencoded到底是什么

概述:x-www-form-urlencoded纸面翻译即所谓url格式的编码,是post的默认Content-Type,其实我觉得可以认为get和post的默认表单数据传递格式都一样,只是一个在url地址后面加 ?再加表单数据,另一个是把表单数据写在请求体內一、位置:请求头內的Content-Type字段里,二、写法:Content-Type:application/x-www-form-urlencoded三、用处:get请求的请求体格式是什么?get请求是拼接在url后面请求的,一般

2022-05-11 17:42:34 29995

转载 Content-Type的几种常用数据编码格式

Content-Type,内容类型,一般是指网页中存在的Content-Type,ContentType属性指定请求和响应的HTTP内容类型。如果未指定ContentType,默认为text/html。1.text/html文本方式的网页文件。2.text/plain窗体数据以纯文本形式进行编码,其中不含任何控件或格式字符。空格转换为 “+” 加号,但不对特殊字符编码。3.application/x-www-form-urlencoded默认地,表单数据会编码为 “applicat.

2022-05-11 17:40:18 926

转载 HTTP(GET/POST)请求过程中的编码问题

一、问题:编码问题是JAVA初学者在web开发过程中经常会遇到问题,网上也有大量相关的文章介绍,但其中很多文章并没有对URL中使用了中文等非ASCII的字 符造成服务器后台程序解析出现乱码的问题作出准确的解释和说明。本文将详细介绍由于在URL中使用了中文等非ASCII的字符造成乱码的问题。1、在URL中中文字符通常出现在以下两个地方:(1)、Query String中的参数值,比如批发_供应_阿里巴巴=中国(2)、servlet path,比如:404-阿里巴巴中国.html2、出现乱...

2022-05-11 17:39:33 4490

转载 Java一个汉字占几个字节(详解与原理)

1、先说重点:不同的编码格式占字节数是不同的,UTF-8编码下一个中文所占字节也是不确定的,可能是2个、3个、4个字节;2、以下是源码: 1 @Test 2 public void test1() throws UnsupportedEncodingException { 3 String a = "名"; 4 System.out.println("UTF-8编码长度:"+a.getBytes("UTF-8").length); 5

2022-05-10 17:43:26 4776 1

转载 什么是Base64

一、什么是Base64? 百度百科中对Base64有一个很好的解释:“Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法”。 什么是“可打印字符”呢?为什么要用它来传输8Bit字节码呢?在回答这两个问题之前我们有必要来思考一下什么情况下需要使用到Base64?Base64一般用于在HTTP协议下传输二进...

2022-05-10 17:41:49 3973

转载 ContentType ,charset和pageEncoding的区别

========================说法一===========================ContentType 属性指定响应的 HTTP 内容类型。如果未指定 ContentType,默认为 text/HTML。   语法  Response.ContentType [= ContentType ]   参数   ContentTypepageEncoding是jsp文件本身的编码contentType的charset是指服务器发送给客户端时的内容编码JSP要经过两次的.

2022-05-10 17:40:05 420

转载 Spring的跨域解决方案总结

前言跨域是什么?浏览器从一个域名的网页去请求另一个域名的资源时,域名、端口和协议,只要有一个不同就是跨域 。我们的项目通常是采用前后端分离开发的,也就是前后端分离部署的,所以必然会存在跨域问题。CORS(Cross-Origin Resource Sharing, 跨源资源共享)是W3C出的一个标准,其思想是使用自定义的HTTP头部让浏览器与服务器进行沟通,从而决定请求或响应是应该成功,还是应该失败。Spring框架提供给我们多种方式解决跨域问题,下面列举比较常用的通过实现CORS解决跨域的两种..

2022-05-09 20:01:46 1425

空空如也

空空如也

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

TA关注的人

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