自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

冬阳

人若无名,便可专心练剑

  • 博客(130)
  • 资源 (1)
  • 收藏
  • 关注

原创 java调用webservice接口,解析成json格式(用户名和密码认证)

公司web项目需要调用erp接口,格式是webservice格式,认证方式是用户名和密码,请求参数拼成一个webservice格式,接口调用返回解析成json格式,需要调用两个包,json包,dom4j包。需要导入的包

2018-10-16 14:13:43 14572 2

原创 设计模式第四章(组合模式)

本文介绍了组合模式(Composite Pattern)的设计思想及应用场景。组合模式是一种结构型设计模式,通过将对象组合成树形结构,使客户端能够以统一方式处理单个对象和对象组合。其核心在于抽象组件(Component)、叶子节点(Leaf)和复合节点(Composite)三个角色的协同工作。 文章通过文件系统示例说明模式结构,并重点展示了人口统计的实战案例:定义PopulationNode接口,实现District(叶子节点)、City和Province(复合节点)的层级关系,最终统一调用computeP

2025-09-24 09:02:34 803

原创 设计模式第三章(迭代器模式)

迭代器模式摘要(147字) 迭代器模式是一种行为设计模式,允许顺序访问聚合对象元素而无需暴露其内部结构。该模式通过实现Iterable和Iterator接口,将遍历逻辑与数据结构解耦。Java集合类通过modCount机制实现并发修改检测,避免遍历时修改数据导致的不一致问题。自定义类实现迭代器需要: 实现Iterable接口并定义iterator()方法 创建内部迭代器类实现Iterator接口 维护遍历状态和边界检查 这种模式支持统一访问不同数据结构,是Java增强for循环的实现基础。

2025-09-18 12:48:09 594

原创 设计模式第二章(装饰器模式)

装饰器模式摘要(140字): 装饰器模式是一种结构型设计模式,允许在不修改原有对象的情况下动态扩展功能。它通过包装原有对象并提供额外功能,比继承更灵活。文中通过两个案例演示:1) HistorySet通过包装Set实现删除记录功能;2) 通过BufferInputStream包装FileInputStream提升读取性能(从2.5秒优化到5毫秒)。核心思想是持有被装饰对象引用,在调用前后添加新行为,保持接口一致性。这种模式适用于需要透明扩展对象功能的场景。

2025-09-16 15:00:00 1300

原创 设计模式第一章(建造者模式)

建造者模式精要 建造者模式是一种创建型设计模式,通过分离对象的构建过程与表示来解决复杂对象的创建问题。核心思想是将构建步骤拆分为独立模块,由指挥者控制流程,建造者负责具体实现。该模式具有四大优势:构建与表示分离、分步组装、良好封装性和扩展灵活性。 代码演进展示了建造者模式的实际应用:从V1版本的基础校验问题,到V2引入Builder类确保校验时机,再到V3通过final属性和构造函数实现对象不可变性。最终版本实现了链式调用(DSL风格),既保证了构建过程的规范性,又确保了对象的不可修改性。典型应用场景包括需

2025-09-09 09:25:35 678

原创 JavaScript学习最后一章节(小练习)

本文总结了JavaScript学习中的几个DOM练习案例,包括轮播图实现和贪吃蛇游戏。主要内容有: 图片轮播练习 实现了定时器自动切换图片功能 包含上一张/下一张按钮控制 显示当前图片编号和总数 提供了两种自动切换实现方式 轮播图优化 使用CSS过渡效果实现平滑切换 通过绝对定位和透明度控制图片显示 自动轮播功能实现 贪吃蛇游戏 未展示完整代码 作为DOM操作的综合练习 这些练习帮助作者巩固了JavaScript基础知识,特别是DOM操作和定时器的使用。作者表示作为Java后端开发人员,通过这些练习加深了对

2025-09-03 13:18:37 378

原创 JavaScript学习第十一章-jQuery

jQuery学习摘要 jQuery是一个功能强大的JavaScript库,提供简洁API简化DOM操作、事件处理、动画和Ajax等开发任务。核心函数$()具有多重功能:作为工具类使用提供isFunction()等工具方法;作为函数使用时可以加载回调、选择元素(返回jQuery对象)或创建DOM元素。jQuery对象是DOM对象的增强版,具有隐式迭代和链式调用特性,支持批量操作元素。学习内容包括jQuery的引入方式(本地/CDN)、核心函数应用场景以及jQuery对象与原生DOM对象的区别与转换。

2025-08-29 09:45:56 567

原创 JavaScript学习第十章-第三部分(dom)

JavaScript DOM事件与BOM对象摘要 本文主要讲解JavaScript中的DOM事件处理机制和BOM对象相关知识。内容涵盖: 事件对象:浏览器自动创建的事件对象event,包含鼠标坐标等事件信息,可通过回调函数参数获取 事件行为: 事件冒泡原理及阻止方法(event.stopPropagation) 取消默认行为(event.preventDefault) event.target与this的区别 冒泡应用:通过document绑定事件实现元素跟随鼠标移动的案例,展示冒泡机制的优点 BOM对象:

2025-08-16 17:33:10 1050

原创 JavaScript学习第十章-第二部分(dom)

本文介绍了JavaScript DOM操作的两个实践练习:图片切换和多选框功能实现。在图片切换练习中,通过按钮控制图片索引变化,实现循环切换效果,并动态更新显示信息。多选框练习展示了全选、取消、反选和提交功能的实现:全选/取消通过遍历设置所有复选框状态;反选则对每个选项取反;提交功能可获取所有选中值。这些案例涵盖了DOM元素获取、属性修改、事件绑定等核心操作,演示了如何通过JavaScript动态控制页面元素,实现交互效果。文中代码示例清晰展示了具体实现逻辑,适合初学者学习基础DOM操作。

2025-08-08 14:30:00 1025

原创 JavaScript学习第十章-第一部分(dom)

本文介绍了JavaScript中的DOM(文档对象模型)基础知识,主要包括: 常见DOM对象类型:Document、Element、Node等核心接口及其作用 获取DOM元素的多种方法:通过ID、标签名、类名、CSS选择器等 DOM操作:添加/删除元素、修改内容、操作属性等常用方法 document对象详解:其原型链及常用属性(如documentElement、head、body等) 元素节点操作:如何获取和创建元素节点,包括getElementById()、getElementsByClassName()

2025-07-29 08:51:07 1029

原创 JavaScript学习第九章-第三部分(内建对象)

JavaScript内建对象摘要 本文介绍了JavaScript中的包装类和字符串方法。包装类包括String、Number、Boolean等,可以将原始值包装为对象,但实际开发中不建议直接使用。字符串本质上就是字符数组,提供了丰富的方法如: 属性: length获取长度 字符获取: at(), charAt() 字符串操作: concat(), includes(), indexOf(), replace(), slice()等 格式处理: padStart(), toLowerCase(), trim(

2025-07-14 21:19:59 925

原创 JavaScript学习第九章-第二部分(内建对象)

本文摘要: JavaScript内建对象是语言核心功能,包括Object、Function、Array、String等基础类型,以及Map、Set、Promise等ES6新增对象。重点讲解了Map对象(存储键值对,允许任意类型作为key)和Set对象(存储唯一值集合)的使用方法,涵盖创建、增删查改操作,以及转为数组、解构赋值、遍历等高级用法。这些内建对象为开发提供了强大基础功能,掌握它们对编写高效JavaScript代码至关重要。

2025-07-10 08:56:13 797

原创 javaScirpt学习第八章-第一部分

JavaScript学习摘要:第八章-第一部分 数组部分 可变参数:函数中隐含的arguments对象可存储所有实参,可变参数(...args)更灵活,是真正的数组。 this指向:函数调用方式决定this值,call/apply可指定this,call逐个传参,apply用数组传参。 bind方法:创建新函数并绑定this和参数,箭头函数的this不可修改。 内建对象 解构赋值:简化数组/对象赋值,支持剩余元素(...)收集。 交换变量:通过解构实现快速变量交换:[a,b]=[b,a]。 (98字)

2025-07-07 21:39:41 781

原创 javaScirpt学习第七章(数组)-第二部分

JavaScript数组去重与排序方法总结 本文介绍了JavaScript中数组去重和排序的多种实现方法: 数组去重: 通过双重循环比较元素并删除重复项 使用indexOf方法检查元素是否已存在新数组 结合indexOf和splice方法直接修改原数组 排序算法: 冒泡排序:比较相邻元素并交换位置 选择排序:每次选择最小元素与当前位置交换 两种方法的时间复杂度相同但移位方式不同 函数封装: 将排序逻辑封装为可复用函数 示例展示了对象数组的过滤功能 指出当前函数不够灵活的问题 文中包含详细的代码示例和运行结果

2025-07-01 18:53:23 904

原创 javaScirpt学习第七章(数组)-第一部分

介绍了数组的基本使用,内置方法,还有一些拷贝,深浅拷贝原理,基础入门

2025-06-20 09:09:49 614

原创 javaScirpt学习第六章(面向对象)-第二部分

本文摘要: JavaScript中的对象结构分为两部分:对象自身和原型对象。对象自身存储直接添加的属性,原型对象存储通过类方法添加的属性和方法。访问属性时优先查找对象自身,再沿原型链查找。原型对象构成原型链,所有同类对象共享同一个原型。修改原型应通过类.prototype进行,避免通过实例修改。instanceof用于检查对象是否属于某类或其原型链上,Object.hasOwn()检查对象自身是否包含某属性。文中通过代码示例展示了原型链结构和相关方法的使用。

2025-06-16 20:05:48 672

原创 javaScirpt学习第六章(面向对象)-第一部分

本文摘要: JavaScript面向对象编程的核心概念包括:1) 基于原型的继承机制;2) 类(class)作为对象模板;3) 属性的定义方式(实例属性和静态属性);4) 实例方法与静态方法的区别;5) 构造函数的特殊作用;6) 封装特性实现数据安全(通过私有属性和getter/setter方法)。文章通过具体代码示例展示了如何创建类、定义属性和方法、使用构造函数初始化对象,以及实现封装保护数据安全,为JavaScript面向对象编程提供了基础实践指导。(148字)

2025-06-12 09:21:05 835

原创 javaScirpt学习第五章(函数)-第二部分

本文摘要: JavaScript函数学习第二部分主要介绍了window对象、this指向、变量提升等核心概念。关键点包括:1) window对象是浏览器全局对象,管理内置函数和变量;2) var声明变量自动成为window属性,let则不会;3) 变量和函数存在提升现象;4) this指向根据调用方式不同而变化;5) 立即执行函数(IIFE)可创建一次性作用域。文章还通过多个示例演示了debug调试、this在不同场景下的指向,以及let/var的作用域差异,帮助理解JavaScript的函数工作机制。

2025-05-31 17:23:59 766

原创 javaScirpt学习第五章(函数)-第一部分

JavaScript函数是代码复用的基础单元,可通过function关键字或箭头函数定义,支持参数传递和返回值。函数本质上是对象,可以存储代码并在需要时调用。定义方式包括函数声明、函数表达式和箭头函数。函数调用时,实参会赋值给形参,若形参多于实参,多余形参为undefined。箭头函数简洁,支持默认参数。函数还可以接收对象作为参数,修改对象属性会影响所有引用该对象的变量。此外,函数可以作为参数传递给其他函数,实现更灵活的代码结构。

2025-05-23 12:57:14 997

原创 javaScirpt学习第四章(对象)-基础部分

JavaScript中的对象是存储键值对的复合数据类型,允许灵活组织和访问数据。对象可以通过new Object()、Object()或{}创建,属性名通常是字符串,属性值可以是任意类型,包括对象。对象属性可以通过.或[]访问,删除属性使用delete操作符。对象字面量{}可以直接创建并添加属性。枚举对象属性使用for-in循环,但符号属性不可枚举。对象是可变类型,修改对象会影响所有指向它的变量,而原始值是不可变类型。对象比较时比较的是内存地址,而非内容。

2025-05-21 10:16:00 627

原创 javaScript学习第三章(流程控制小练习)

本文介绍了JavaScript中流程控制的相关练习,涵盖if、if-else、switch、while和for等语句的使用。通过具体需求背景和代码示例,展示了如何判断奇偶数、根据成绩发放奖励、判断婚姻条件、计算存款年限以及求水仙花数和质数等问题。每个练习都提供了详细的解题分析和代码实现,帮助读者更好地理解流程控制的应用场景和编程技巧。这些练习不仅巩固了基础语法,还提升了解决实际问题的能力。

2025-05-19 22:13:16 1180

原创 javaScript学习第三章(流程控制)夯实基础

JavaScript的流程控制是编程中管理代码执行顺序的核心机制,主要包括顺序、分支和循环三种结构。顺序流程控制是代码的默认执行方式,按顺序逐行执行。分支流程控制通过条件判断选择执行不同的代码块,常见的有if、三元表达式和switch语句。if语句用于单一条件判断,if-else和if-else if-else则用于多条件分支。switch语句适合多条件全等判断,结构清晰但功能与if语句重复。 循环流程控制用于重复执行代码块,主要包括for、while、for-in和do-while循环。while循环在条

2025-05-19 22:09:38 620

原创 javaScript学习第二章(运算符)夯实基础

本文介绍了JavaScript中的运算符及其使用方法,涵盖了算术运算符、赋值运算符、比较运算符、逻辑运算符、字符串运算符、条件(三元)运算符和类型运算符。通过示例代码,详细展示了各种运算符的具体应用场景,如算术运算中的加减乘除、赋值运算中的+=、-=等,以及逻辑运算中的&&、||和!。此外,还探讨了JavaScript的弱类型特性,如字符串与数字的自动类型转换。文章通过丰富的代码示例,帮助读者理解运算符的使用及其在编程中的实际应用。

2025-05-16 09:30:14 820

原创 javaScript学习第一章(数据类型)夯实基础

JavaScript 的数据类型分为原始数据类型和引用数据类型。原始数据类型包括 Number、String、Boolean、Undefined、Null 和 Symbol。Number 类型表示数值,支持整数、浮点数和特殊值如 NaN 和 Infinity。String 表示文本数据,Boolean 表示逻辑值 true 或 false,Undefined 表示未赋值的变量,Null 表示空值,Symbol 是唯一标识符。引用数据类型包括对象、数组等。使用 typeof 运算符可以判断原始数据类型,但无法

2025-05-14 13:09:00 989

原创 css3基于伸缩盒模型生成一个小案例

基于css3伸缩盒模型写的一个小案例,运用了css3 flex布局,主轴对齐等功能

2025-05-13 16:10:21 464

原创 CSS3(BFC)

BFC(Block Formatting Context,块级格式化上下文)是CSS中的一种布局机制,用于控制块级元素的布局和渲染。BFC的创建可以通过浮动、绝对定位、行内块元素、表格单元格、overflow属性不为visible等方式实现。开启BFC后,可以解决子元素的margin塌陷、浮动元素覆盖、以及父元素高度塌陷等问题。例如,通过设置float: left、position: absolute、display: inline-block、overflow: auto等属性,可以触发BFC,从而避免布

2025-05-12 21:18:59 1531

原创 css3响应式布局

CSS3响应式布局是现代网页设计中的关键技术,确保网页在不同设备上(如手机、平板、桌面电脑)都能良好显示。媒体查询(Media Queries)是实现响应式布局的核心工具,允许根据屏幕宽度、高度等特性调整样式。媒体类型(如screen、print)和媒体特性(如width、max-width、min-width)是媒体查询的重要组成部分。通过设置max-width和min-width,可以定义不同屏幕尺寸下的样式变化,确保布局的灵活性和适应性。响应式设计提升了用户体验,使网页在各种设备上都能保持一致的外观和

2025-05-12 13:02:55 1205

原创 css3伸缩盒模型第三章(伸缩相关)

主轴方向 如果是纵向,那么flex-basis代表的就是高度,宽度就失效了。每个项目本身是200px,当设置了 flex-basis 后,高度就变为 300px了。

2025-05-08 15:29:41 1332

原创 css3伸缩盒模型第二章(侧轴相关)

侧轴对齐我们需要分两种情况,一种是多行,一种是单行,两种设置方式不同。

2025-05-06 13:03:13 1044

原创 css3伸缩盒模型第一章(主轴以及伸缩盒模型)

我们设置了伸缩项目后,里面的项目就好挤到一行,我们需要进行一个换行操作,我们需要做的是将内容撑多,放多个盒子,这样才好观察。方式2 换行 不过我们可能觉得不可思议,没有挨到一起,挨到一起是纵轴的设置,不是主轴。伸缩项目沿着主轴排列,主轴默认是水平的,默认方向是:从左到右(左边是起点,右边。我们将父元素叫做伸缩容器,子元素称为项目,容器里面的元素都称为一个一个的项目。如果我们有很多元素的话,我们可以设置元素的排列方式,如均分,两边对齐。均匀分布 ,留的空隙都是一样的,这是新出来的特性,比较新。

2025-04-29 21:15:37 1054

原创 css3新特性第十章(多列布局)

多列布局长用于类似于报纸的布局,横排方向。

2025-04-28 09:14:06 427

原创 css3新特性第九章(动画)

关键帧指的是,在构成一段动画的若干帧中,起到决定性作用的 2-3 帧。关键帧有两种方式,一种是通过关键字 from -> to这种方式 ,还有一种是 0% -》 100% 的方式,还有一种是混合,但是不推荐;

2025-04-27 12:49:13 748

原创 css3新特性第八章(过渡)

过渡可以在不使用 Flash 动画,不使用 JavaScript 的情况下,让元素从一种样式,平滑过渡为另一 种样式。

2025-04-26 20:29:13 832

原创 css3新特性第七章(3D变换)

我们发现,当我们设置了 perspective 的参数大小会发现,我们数值设置的越小,那么我们看到的z轴面积就越大,改值跟我们眼睛看东西一样,越近对应看到的物体也就越大,数字越小就代表越近,因为只有旋转效果是最好的,位移和缩放是看不出来的,因为没有厚度我们看到的第一眼以为是一个放大,实际上不是的,位移后,原本盒子没有厚度导致我们以为只是放大,这个时候我们需要调整透视点位置即可。

2025-04-24 22:01:13 1073

原创 css3新特性第六章(2D变换)

我们看到使用位移的时候,设置了原点偏移没有作用,也就是说,位移对是否设置原点不影响设置原点对缩放是有影响的,本来是以中小为原点的,目前是按照设置的方式显示设置原点对旋转是有影响的,一直围绕这 设置点为中心点旋转,我们自己可以打开开发者工具,手动调整角度进行观察。

2025-04-22 19:13:03 877

原创 css3新特性第五章(web字体)

使用以前 CSS 的版本,网页设计师不得不使用用户计算机上已经安装的字体。使用,网页设计师可以使用他/她喜欢的任何字体。当你发现您要使用的字体文件时,只需简单的将字体文件包含在网站中,它会自动下载给需要的用户。您所选择的字体在新的版本有关于规则描述。您"自己的"的字体是在规则中定义的。Internet Explorer 9+, Firefox, Chrome, Safari, 和 Opera 支持 WOFF (Web Open Font Format) 字体.

2025-04-21 21:49:34 666

原创 css3新特性第四章(渐变)

渐变,线性渐变,径向渐变,多个颜色之间的渐变, 然后到小案例。

2025-04-20 16:28:12 1350

原创 css3新特性第三章(文本属性)

超出文字部分截掉,这个的前提是需要设置文字不换行,并且需要设置 overflow 的属性。/* 如果一行过长,会自动换一行显示,特点:文本始末空格都给出掉了,只认换行 */​ /* 这个属性必须写 visible 不写就可以了*/​ /* 这个属性必须写 visible 不写就可以了*/​ /* 文字溢出 第一种 超出文字部分截掉 *//* 按原文显示,如果超出了宽度,也会原样输出 *//* 第二种写法 三个值 背景颜色*//* 所有的文本都不换行,都放到一行 */

2025-04-20 06:46:18 1122

原创 css3新特性之第二章(新增属性/背景属性/边框属性)

css3新增背景属性,边框属性,对这两种属性里面包含的属性进行案例演示以及代码

2025-04-16 09:35:06 856

原创 css3新特性之第一章(盒模型)

- CSS3 是 CSS2 的升级版本,它在 CSS2 的基础上,新增了很多强大的新功能,从而解决一些实际 面临的问题。- CSS3 在未来会按照模块化的方式去发展: https://www.w3.org/Style/CSS/current-work.html- CSS3 的新特性如下: - 新增了更加实用的选择器,例如:动态伪类选择器、目标伪类选择器、伪元素选择器等等。 - 新增了更好的视觉效果,例如:圆角、阴影、渐变等。 - 新增了丰富的背景效果,例如:支持多个背景图片,同时新增了若

2025-04-11 10:54:58 753

【分布式消息队列】RocketMQ源码解读与设计思想总结:服务启动、客户端业务及重点机制分析

内容概要:本文档详细解读了RocketMQ的源码及其设计思想,涵盖了源码环境搭建、服务启动过程、客户端主要业务和重点业务机制四个方面。在源码环境搭建中,介绍了源码拉取、注解版源码引入和源码调试的具体步骤。服务启动过程包括NameServer和Broker的启动过程,重点剖析了其核心对象和启动流程。客户端主要业务部分详细描述了Netty服务注册框架、Broker心跳注册过程、Producer发送消息过程和Consumer拉取消息过程。重点业务机制部分探讨了文件存储、延迟消息和长轮询机制的实现原理。 适合人群:具备一定编程基础,特别是对分布式系统和消息队列有一定了解的研发人员。 使用场景及目标:①帮助开发者深入了解RocketMQ的内部工作原理;②指导开发者如何搭建和调试RocketMQ源码环境;③解析RocketMQ中关键模块如NameServer、Broker、Producer和Consumer的工作机制;④解释文件存储、延迟消息和长轮询机制等高级特性的实现细节。 阅读建议:由于RocketMQ源码较为复杂,建议读者先从简单的案例入手,逐步理解主线流程,避免一开始就陷入细节。在阅读过程中,结合提供的注释版源码和相关配置,逐步深入理解每个模块的功能和交互关系。同时,建议读者带着具体问题去阅读源码,以加深对源码的理解。此外,RocketMQ的源码设计思想符合国人的思维方式,因此阅读时可以更加顺畅。

2025-04-03

【消息中间件】RocketMQ快速实战指南与集群架构解析:从安装到高可用集群搭建

内容概要:本文档详细介绍了RocketMQ的快速实战及其集群架构解析。首先概述了RocketMQ的发展历程与特点,强调其在高并发场景下的卓越性能和可靠性。接着,文档逐步引导读者完成RocketMQ的下载、安装、配置和启动,涵盖从单机环境到集群架构的搭建过程。重点讲解了NameServer、Broker、Producer和Consumer等核心组件的功能与配置,并深入探讨了消息转发模型、集群搭建及优化、以及Dledger高可用集群的实现。最后,文档还简要介绍了RocketMQ的消息模型和关键概念,为读者提供了全面的技术指导。 适合人群:具备一定Linux基础和Java开发经验的研发人员,尤其是对消息队列有兴趣或正在使用RocketMQ的技术人员。 使用场景及目标:①帮助技术人员快速掌握RocketMQ的安装配置与基本操作;②深入理解RocketMQ的工作原理和集群架构设计;③优化RocketMQ集群性能,提高系统的可靠性和扩展性;④学习如何通过命令行工具和服务管理工具监控和管理RocketMQ集群。 阅读建议:本文档内容详尽,涵盖了从入门到进阶的各个方面。建议读者按照章节顺序逐步学习,特别是对于集群搭建和优化部分,应结合实际环境进行实践操作。此外,文档中提及的配置文件和命令行工具是理解RocketMQ工作流程的关键,读者应当仔细研究并尝试配置。对于高级功能如Dledger高可用集群,建议在掌握基础知识后再深入探索。

2025-04-03

### 【Java Web安全】基于SpringSecurity的用户认证与授权系统设计:从入门到实践

内容概要:本文档《SpringSecurity-从入门到精通.pdf》详细介绍了Spring Security的安全管理框架,涵盖入门配置、认证授权、JWT认证、权限控制以及OAuth2.0集成等内容。首先阐述了Spring Security相较于Shiro的优势,包括更丰富的功能和社区资源,适用于中大型项目。接着讲解了如何在Spring Boot项目中引入Spring Security,包括创建项目、添加依赖、配置安全过滤器链等。重点介绍了认证和授权机制,包括自定义登录接口、JWT的工作原理及其在Spring Security中的实现。此外,文档还深入探讨了基于角色的权限控制(RBAC),并通过MyBatis Plus实现了用户权限查询。最后,介绍了OAuth2.0的概念及第三方登录的集成方法。 适合人群:具备一定Java开发基础,特别是熟悉Spring Boot框架的研发人员,尤其是那些需要为Web应用添加安全防护措施的技术人员。 使用场景及目标:①为Web应用构建安全框架,确保用户认证和授权的安全性;②实现基于JWT的无状态认证机制,提升系统性能;③通过RBAC模型实现细粒度的权限控制;④集成第三方登录服务,如GitHub、Gitee等,方便用户快速登录。 其他说明:文档不仅提供了理论知识,还包含大量实战代码示例,帮助读者更好地理解和应用Spring Security。同时,文档强调了安全性和用户体验之间的平衡,通过异常处理机制确保系统在认证失败或授权失败时仍能返回友好的JSON响应。此外,文档还涉及了JWT与Redis的结合使用,以解决JWT无状态带来的登录状态管理问题。

2025-04-03

### 【消息中间件】RocketMQ开发模型与生产环境问题剖析:深入掌握原生API及SpringBoot集成方法

内容概要:本文档深入介绍了RocketMQ的开发模型及其在生产环境中的常见问题和解决方案。首先阐述了RocketMQ原生API的使用,包括测试环境搭建、编程模型和多种消息类型的样例(如基本消息、顺序消息、广播消息、延迟消息、批量消息、过滤消息、事务消息和ACL权限控制)。接着讲解了如何在SpringBoot项目中整合RocketMQ,包括依赖配置、快速实战和其他消息类型的实现。最后,文档详细探讨了RocketMQ使用中常见的问题及解决方案,如保证消息不丢失、消息顺序、快速处理积压消息和消息轨迹的配置与使用。 适合人群:具备一定Java编程基础,尤其是对消息队列有一定了解的研发人员,特别是工作1-3年的后端开发工程师。 使用场景及目标:①适用于需要在Java项目中集成RocketMQ的消息队列功能;②帮助开发者理解RocketMQ的核心概念和技术细节;③指导如何处理RocketMQ在实际生产环境中遇到的各种问题,如消息丢失、消息顺序和积压消息处理等。 阅读建议:由于RocketMQ涉及较多的技术细节和配置项,建议读者在阅读时结合实际代码和官方文档进行实践,尤其注意不同版本间的差异。对于事务消息和消息轨迹等功能,可以通过调试源码中的示例代码加深理解。此外,针对生产环境中的问题,建议读者结合自身业务场景,灵活运用文档中的解决方案。

2025-04-03

jvm内存+jvm类加载机制由浅入深

想知道jvm内存模型吗,包含jvm类加载机制,nio、bio、常量池,并发编程

2025-04-03

基于硅谷甄选项目写的一套后台系统

基于尚硅谷老师,天禹老师讲解的 vue3 + 硅谷甄选项目搭建的一套后台java项目,用到的技术为 springboot+springsecurity+mysql+redis,包含数据库脚本。以及增加了接口分类增加,品牌信息新增。

2025-03-27

springboot+thymeleaf+springsecurity 实现的一个小案例,包含登录,注册;登录成功后员工信息查看

springboot+thymeleaf+springsecurity 实现的一个小案例,包含登录,注册;登录成功后员工信息查看,编辑员工,删除员工,更新员工,包含图片上传功能,实现了入门到项目实际使用拿过来改改前端页面即可直接应用与生产环境。案例演示地址:https://blog.csdn.net/qq_36260963/article/details/143093644

2024-10-20

springboot+thymeleaf 整合小案例,用于对thymeleaf 各种语法使用,以及真正做到实战经验

springboot+thymeleaf 实现的一个小案例,包含登录,注册;登录成功后员工信息查看,编辑员工,删除员工,更新员工,包含图片上传功能,实现了入门到项目实际使用拿过来改改前端页面即可直接应用与生产环境。让你对thymeleaf 如何是用不再迷茫。有一个更深刻的认知;案例演示地址:https://blog.csdn.net/qq_36260963/article/details/143093644

2024-10-20

spring security 自定义动态权限

当我们配置的 URL 拦截规则请求 URL 所需要的权限都是通过代码来配置的,这样就比较死板,如果想要调整访问某一个 URL 所需要的权限,就需要修改代码。动态管理权限规则就是我们将UR 拦截规则和访问 URI 所需要的权限都保存在数据库中,这样,在不修改源代码的情况下,只需要修改数据库中的数据,就可以对权限进行调整。

2024-09-10

spring security 记住我功能实现

spring security 记住我功能实现,包含前端代码,传统web开发,前后端分离实战,里面包含两个项目,一个是传统的web一个是前后端分离项目,用来入门以及实战都是很好的

2024-08-30

spring security form表单,基于ajax请求,包含多登出方式

spring security form表单,基于ajax请求,用于前后端分离,包含多登出方式

2024-08-22

spring security 表单入门,自定义跳转页面,包含ajax 和传统的web跳转,同时涵盖有前端页面

帮助快速上手spirngsecurity,从入门到使用不在迷茫

2024-08-22

webservice参数的获取.docx

里面详细的介绍了 webservice 的所有参数是怎么获取的,以及prefix,action,locationUrl,每个参数都有详细的截图和说明,保证看完后就知道怎么做了,如果还有疑问,可qq问

2020-05-09

空空如也

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

TA关注的人

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