什么是RESTful
RESTful是一种基于资源的API设计规范,通过统一的HTTP方法(GET/POST/PUT/DELETE)对资源进行操作,提升接口的可读性、规范性和可维护性。它强调URI代表资源、使用标准HTTP动词、无状态交互,避免在路径中使用动词,确保行为一致、结构清晰,便于系统扩展与协作。
RememberMe简介及用法
RememberMe功能通过Cookie实现用户登录状态持久化,避免重复登录。其本质是服务端生成令牌存于Cookie,后续请求自动携带并校验,关闭浏览器后仍可保持登录。但存在令牌泄露风险,需结合数据库持久化Token、设置过期时间及二次验证提升安全性。
SpringBoot使用汇总
本节课主要系统的讲解了 Spring Boot 集成 MyBatis 的过程,分为基于 xml 形式和基于注解的形式来讲解,通过实际配置手把手讲解了 Spring Boot 中 MyBatis 的使用方式,并针对注解方式,讲解了常见的问题已经解决方式,有很强的实战意义。在实际项目中,建议根据实际情况来确定使用哪种方式,一般 xml 和注解都在用。
1. 整合Logback,滚动记录+多文件
本文介绍了`logback-spring.xml`的配置与使用,通过定义多个Appender和Logger实现日志分级输出至不同文件,如支付、任务、SQL等;结合`LogProxy.getLogger()`在Java代码中按名称获取指定日志记录器,实现精准日志分类管理,提升系统可维护性。(238字)
@Configuration
被@Configuration标注的类视为Spring配置类,相当于XML配置文件。通过@Bean注册Bean,配合AnnotationConfigApplicationContext可启动IOC容器,加载配置类及其中的Bean组件。
OAuth2.0实战案例
本教程介绍如何搭建Spring Boot集成Security与OAuth2的项目,包括创建父工程、配置依赖管理、添加资源模块及数据库连接,实现安全认证服务的基础架构。
大厂如何解决订单幂等问题
为保障分布式系统数据一致性,需实现接口幂等性。创建订单时,通过预生成唯一订单号并利用数据库主键唯一约束,防止重复插入;支付时结合Redis或DB流水表标记请求处理状态,避免重复扣款。针对ABA问题,采用版本号机制,更新时校验版本并原子自增,确保数据正确。方案适用于各类数据库操作,通用性强。
持久层框架MyBatisPlus
MyBatisPlus是MyBatis的增强框架,简化单表CRUD操作,内置分页、条件构造器、代码生成等功能,支持逻辑删除、枚举处理与JSON字段映射,提升开发效率。
SpringBoot
`@Configuration` 注解用于标记配置类,相当于 Spring 的 XML 配置文件,配合 `@Bean` 注解定义 Bean。通过 `AnnotationConfigApplicationContext` 可加载此类并启动 IOC 容器,实现组件注册与管理。
认识OAuth2.0
OAuth2.0是一种开放授权标准,允许第三方应用在用户授权下安全访问资源,无需获取用户账号密码。它通过令牌(token)机制实现权限控制,支持授权码、简化、密码和客户端四种模式,广泛用于第三方登录与服务间资源共享。
SpringBoot使用汇总
本系列课程从Spring Boot环境搭建开始,逐步讲解拦截器、Redis、ActiveMQ、Shiro、Lucene等技术的集成,最后实战搭建企业级项目架构,助你全面掌握Spring Boot开发核心技能。
1.自定义认证前端页面
本文介绍Spring Security基础配置:前端需手动创建文件夹并拷贝路径;后端新增接口与登录配置,通过SecurityConfig实现请求认证、表单登录及跳转,禁用CSRF。启动后访问/demo/index将自动跳转登录页,输入用户名密码后可成功获取接口数据。
2.通用权限管理模型
本文介绍了ACL、RBAC等常见权限模型。ACL通过用户/角色与权限直接绑定实现控制;RBAC则基于角色继承、职责分离等机制,提升权限管理的灵活性与安全性,适用于复杂系统。了解模型结构有助于构建清晰的权限体系。
4.认识SpringSecurity
SpringSecurity是Java生态中主流的权限框架,核心功能包括认证与鉴权。支持表单、OAuth2、JWT等多种认证方式,具备URL级、方法级授权及RBAC模型,可防御CSRF等攻击。其架构基于过滤器链,通过FilterChainProxy实现多安全过滤链,并结合ExceptionTranslationFilter处理认证异常,灵活且扩展性强。
认证源码分析与自定义后端认证逻辑
本文深入分析Spring Security认证流程,从UsernamePasswordAuthenticationFilter到AuthenticationManager、ProviderManager,最终解析DaoAuthenticationProvider如何通过UserDetailsService实现自定义认证。重点揭示了自定义用户服务需实现loadUserByUsername并返回含权限的UserDetails对象,结合配置类注册服务,实现数据库认证。附完整代码仓库。
整合切面,参数拦截+过滤
该类基于Spring AOP实现请求参数的前置拦截与日志记录,自动捕获Controller层请求的URL、方式、参数及响应方法,并记录执行耗时,便于调试与监控,支持后续扩展如数据脱敏或存储。
整合Logback,滚动记录+多文件
本文档包含logback-spring.xml配置文件及使用示例,定义了多种日志记录器(如INFO、ERROR、SQL等),并演示如何在Java项目中通过LogProxy获取指定日志实例,实现分类日志输出与管理。
Mybatis映射关系(1-1 1-n n-n)
本文介绍MyBatis中四种关联映射:一对一(resultMap解决字段与属性映射)、一对多(使用`<collection>`映射集合)、多对一(使用`<association>`关联对象)及多对多(通过中间类结合`<collection>`实现)。适用于处理数据库表间复杂关系,提升数据封装灵活性。
2.过滤器链加载原理
通过分析DelegatingFilterProxy、FilterChainProxy与SecurityFilterChain,揭示了Spring Security中15个过滤器的加载机制。虽未显式配置,实则由框架自动组装。底层原理明晰后,方可更好自定义登录页面,实现认证功能。
认识SpringSecurity
Spring Security 是成熟的安全框架,提供认证、鉴权及防御网络攻击等核心功能。支持多种认证方式(如OAuth2、JWT)、基于URL和方法的权限控制,并通过过滤器链实现安全逻辑,保障应用安全。
@Inherited
@Inherited 是 Java 中的元注解,用于修饰其他注解,使其在类继承中可被子类继承。当某注解使用 @Inherited 时,若该注解应用于父类,其子类将自动继承该注解。但仅适用于类的继承,不适用于接口继承或类实现接口的场景。
1.RememberMe简介及用法
RememberMe功能实现用户关闭浏览器后仍保持登录状态,通过Cookie存储令牌而非明文密码。Spring Security中配置rememberMe()并设置key,登录时生成持久化令牌存于Cookie,后续请求自动携带验证身份。但需防范令牌泄露风险,可通过数据库持久化Token并增加二次校验提升安全性。
3.实现权限管理的技术
权限管理技术选型需综合考量。常见方案如Apache Shiro,轻量易用但安全维护弱;Spring Security功能强大,适合Spring生态但较重;自定义ACL贴近业务但通用性差。多数工具均为ACL或RBAC的封装,应根据项目需求权衡选择。
1.认识OAuth2.0
OAuth2.0是一种开放授权标准,允许第三方应用在用户授权下安全访问资源,无需获取用户账号密码。其核心为令牌机制,支持四种模式:授权码模式(最安全,常用于第三方登录)、简化模式(适用于无后端应用)、密码模式(需高度信任)和客户端模式(服务间调用)。广泛应用于API授权与单点登录场景。
2.OAuth2.0实战案例
本教程介绍OAuth2四大授权模式实现:创建父工程及资源、授权模块,配置启动类与处理器;通过授权码、简化、密码及客户端模式测试,完成登录认证、权限授予、令牌申请与资源访问全流程。
4-MongoDB索引知识
MongoDB索引通过B树结构提升查询效率,避免全表扫描。支持单字段、复合、地理空间、文本及哈希索引,适用于等值、范围、排序、全文检索等多种查询场景,显著提升大数据量下的查询性能。
1-MongoDB相关概念
MongoDB是一款高性能、无模式的文档型NoSQL数据库,适用于高并发、海量数据、高扩展性场景。它以BSON格式存储数据,灵活支持复杂数据结构,广泛应用于社交、游戏、物联网、物流和视频直播等领域。适合无需事务、需快速迭代、高读写负载及大规模地理查询的应用,相较MySQL可大幅降低开发运维成本。
大数据与机器学习
大数据领域前沿技术分享与交流,这里不止有技术干货、学习心得、企业实践、社区活动,还有未来。