OAuth2.0使用场景
A网站需打印用户存于B网站的照片时,传统方式需共享账号密码,而OAuth2只需获取临时通行令牌,按需授权资源访问权限,更安全灵活。注意:OAuth2侧重服务间资源授权,不同于单点登录。Spring Security集成OAuth2可实现资源共享与单点登录。
盲注和二阶 SQL 注入
SQL盲注利用延迟等间接方式探测数据库操作,即使无直接数据回显。攻击者通过sleep()或耗时子查询引发响应延迟,判断语句执行情况,进而窃取或篡改数据。二阶SQL注入则利用存储后二次使用的恶意数据,隐蔽性强,需结合参数化查询与严格输入验证防范。
成功的 SQL 注入攻击的后果
SQL注入可导致多种安全威胁:绕过身份验证、窃取敏感信息、篡改或删除数据、破坏网页内容,甚至执行远程系统命令。利用如xp_cmdshell等存储过程,攻击者还能控制数据库服务器操作系统,造成严重危害。
MyBatis常见配置
MyBatis配置优先级:方法参数 > resource/url > properties体内。支持多环境配置,通过environments指定,默认使用development。事务管理支持JDBC和MANAGED,结合Spring时由容器管理。常用属性包括缓存、延迟加载、执行器类型等,灵活适配不同场景。
SpringCloud概述
Spring Cloud是微服务架构的综合解决方案,由Spring团队推出,具备约定大于配置、组件丰富、开箱即用等特点。为解决Netflix组件停更问题,阿里推出Spring Cloud Alibaba,集成Nacos、Sentinel、Seata等高性能中间件,成为主流技术栈选择。
RabbitMQ集群部署
本文介绍RabbitMQ集群的部署与高可用方案,涵盖普通模式、镜像模式及仲裁队列。通过Docker搭建三节点集群,配置Erlang Cookie与节点发现机制,实现队列数据共享。针对单点故障问题,引入镜像队列(exactly、all、nodes模式)实现主从复制,并验证高可用性。最后重点介绍RabbitMQ 3.8+推荐的仲裁队列,具备自动故障转移、更强一致性等优势,是生产环境首选方案。(239字)
MongoDB相关概念
MongoDB是一款高性能、无模式的文档型NoSQL数据库,适用于高并发、海量数据、高扩展性场景。支持BSON格式,灵活存储复杂数据,广泛应用于社交、游戏、物联网等领域,尤其适合无需事务、频繁读写、快速迭代的应用。
MongoDB单机部署
本文介绍MongoDB在Windows和Linux系统的安装启动方法,包括下载地址、版本选择(稳定版/开发版)、解压配置、命令行与配置文件启动方式,以及常见问题解决。同时涵盖Shell连接、图形化工具Compass的使用,并提供环境变量设置、日志与数据目录配置等详细步骤,确保单机部署顺利进行。
领域模型图(数据架构/ER图)
数据架构的核心输出是ER图,通过四色原型法进行领域建模:红色MI表示时标事件,绿色PPT为业务实体,黄色Role为参与角色,蓝色DESC提供描述属性。以风控系统为例,从业务流程中提炼MI,构建PPT实体,补充Role与DESC,最终提取出实体、关系及约束,形成简洁清晰的ER图,支撑数据模型设计。
容器化部署引擎Docker
Docker简介:解决项目依赖复杂、环境不一致等问题,通过镜像打包应用及依赖,实现跨平台运行;利用容器隔离运行,秒级启动,资源占用少。相比虚拟机更轻量,支持高密度部署,提升开发、测试、生产环境一致性与交付效率。(238字)
开发环境搭建
工欲善其事,必先利其器。学习前请确保电脑内存16G以上(建议32G),推荐使用便携显示器分屏开发以提升效率。下载并配置虚拟机(IP:192.168.101.68)、安装VMware、FinalShell远程连接,导入CentOS7虚拟机并启动Docker、MySQL等服务。IDEA中配置JDK11、Maven(3.8.6)及本地仓库,设置编码与自动导包。安装Git并配置账号信息。通过Gitee Fork黑马商城项目,克隆到本地,创建hmall数据库并导入SQL脚本。前端使用nginx部署,启动后访问http://localhost:18080登录测试。
2.部署篇(开发部署)
本文介绍如何将SpringCloud应用部署至云端Kubernetes集群。通过EDAS导入ACK集群,初始化应用环境,利用IDE插件快速上传war/jar包部署,提升开发效率。后续将讲解运维视角下的自动化发布流程。(236字)
安装ES、Kibana、IK
本文介绍如何通过Docker部署单节点Elasticsearch与Kibana,并配置IK分词器。涵盖网络创建、镜像加载、容器运行、数据卷挂载等步骤,实现ES与Kibana互联;通过Kibana的DevTools操作ES;离线安装IK分词器并配置扩展词典与停用词典,提升中文分词效果;最后处理常见启动报错问题,确保服务正常运行。(238字)
Gateway服务网关
网关是微服务架构的统一入口,实现请求路由、权限控制与限流。SpringCloud Gateway基于WebFlux,性能优于Zuul。支持断言与过滤器工厂,可自定义全局过滤器,解决跨域等问题,是微服务流量管控的核心组件。
Ribbon负载均衡
本节深入讲解@LoadBalanced注解的作用,剖析Ribbon实现客户端负载均衡的原理,涵盖负载均衡分类、算法、自定义策略及饥饿加载优化,帮助读者全面理解微服务中负载均衡的核心机制与应用实践。
@RefreshScope热更新原理
@RefreshScope通过组合注解实现配置热更新,核心在于@Scope("refresh")。其利用代理模式与缓存机制,将Bean纳入自定义刷新作用域,配置变更时清空缓存,触发Spring重新创建Bean实例,从而动态加载最新配置,实现毫秒级更新。
什么是WebFlux
CORS(跨域资源共享)是W3C标准,允许浏览器向跨源服务器发起XMLHttpRequest请求,突破AJAX同源限制。浏览器自动处理CORS通信,开发者无需特殊编码。关键在于服务器需实现CORS接口。请求分为简单和非简单两类,后者会先发送OPTIONS预检请求。相比仅支持GET的JSONP,CORS功能更强大,兼容现代浏览器。
2-MongoDB单机部署
本文介绍MongoDB在Windows和Linux系统的安装启动方法,包括下载、解压、配置数据目录及启动方式(命令行或配置文件)。支持设置环境变量、修改端口、日志与存储路径,并通过mongo shell或Compass图形化工具连接。Linux下还需配置防火墙与关闭服务,确保数据库稳定运行。
3-MongoDB常用命令
本文介绍如何使用MongoDB存储文章评论数据,涵盖数据库与集合的创建、删除,文档的增删改查、批量操作、投影查询、分页排序等功能,结合实际示例说明CRUD操作及注意事项,帮助快速掌握MongoDB基本用法。
5-MongoDB实战演练
本项目基于SpringDataMongoDB实现头条文章评论功能,涵盖增删改查、按文章ID查询评论及点赞功能。通过MongoTemplate优化点赞操作,提升性能,并使用索引提高查询效率,构建高效可扩展的微服务模块。
1.自定义认证前端页面
本示例展示Spring Security基础配置:前端引入登录页,后端新增接口与安全配置。通过SecurityConfig实现请求认证、表单登录、自定义跳转等,启动后访问/demo/index自动跳转登录页,登录成功返回欢迎信息,完成权限控制验证。(238字)
2.过滤器链加载原理
通过分析DelegatingFilterProxy、FilterChainProxy与SecurityFilterChain的源码,揭示了Spring Security中15个过滤器的加载机制:web.xml中配置的DelegatingFilterProxy通过名称获取FilterChainProxy,进而加载封装在SecurityFilterChain中的过滤器链,最终实现安全控制。底层原理明晰后,方可更好自定义认证页面。
1. 整合Logback,滚动记录+多文件
`logback-spring.xml` 配置了多日志模块,按类别分离支付、任务、错误、请求参数及SQL等日志输出,支持滚动归档与级别控制。通过 `LogProxy.getLogger()` 获取指定命名的日志记录器,实现精准日志分类输出,提升系统可维护性与排查效率。(238字)
4.认识SpringSecurity
SpringSecurity是Java生态中主流的权限框架,核心功能包括认证与鉴权。支持表单、OAuth2、JWT等多种认证方式,提供URL级、方法级权限控制及RBAC模型。基于过滤器链实现,通过FilterChainProxy集成到Web容器,具备CSRF防护等安全机制,灵活可扩展。(238字)
数据库
数据库领域前沿技术分享与交流