认证源码分析与自定义后端认证逻辑
本文深入分析Spring Security认证流程,从UsernamePasswordAuthenticationFilter到AuthenticationManager及AbstractUserDetailsAuthenticationProvider源码,详解认证机制,并指导如何通过实现UserDetailsService完成自定义数据库认证,最终实现安全控制。
MyBatis 汇总
本文介绍了MyBatis的核心配置与使用技巧,涵盖属性加载优先级、多环境配置、事务管理、XML映射(一对一、一对多、多对多)、分页实现方式(逻辑与物理分页)及缓存机制,并简要分析了执行器类型与批量操作原理,助力高效开发。
Jmeter快速入门
本文介绍JMeter的安装与快速入门。首先需安装JDK并配置环境,从官网下载JMeter后解压,通过脚本启动。设置中文需修改配置文件language=zh_CN。随后演示创建线程组、添加HTTP取样器及监听器,完成简单性能测试。
2.过滤器链加载原理
本文深入解析Spring Security底层过滤机制,揭示十五个过滤器如何通过DelegatingFilterProxy和FilterChainProxy自动加载并执行,最终明确SecurityFilterChain才是真正的过滤器链实现。
MyBatis 分页
本文介绍了六种分页实现方式:MyBatis自带RowBounds内存分页、PageHelper插件分页、SQL物理分页、数组分页、拦截器分页,并对比了逻辑分页与物理分页的优劣。小数据量时逻辑分页较快,但大数据易内存溢出;推荐优先使用物理分页,尤其在数据量大时性能更优、资源消耗更少。
2-MongoDB单机部署
本文介绍了MongoDB在Windows和Linux系统下的安装、配置与启动方法,包括下载地址、版本选择、解压安装、命令行及配置文件启动方式,并详细说明了如何通过Shell和图形化工具Compass连接数据库。同时提供常见问题解决方案及附件中的各环境安装包链接,便于快速部署使用。
Java基础 One Trick Per Day
初始化Map应避免直接指定大小,建议使用Guava的newHashMapWithExpectedSize或手动计算容量。禁止使用Executors创建线程池,易因队列无界或线程数过多导致OOM,推荐ThreadPoolExecutor自定义参数。Arrays.asList返回不可变列表,禁用增删操作。遍历Map优先使用entrySet或JDK8的forEach。SimpleDateFormat非线程安全,避免static共享可用ThreadLocal或DateTimeFormatter替代。并发更新记录时建议采用乐观锁(如version机制)或加锁策略,冲突概率低时优选乐观锁并设置合理重试次数
MyBatis 常见配置
本文介绍了MyBatis的核心配置机制,包括属性加载优先级(方法参数 > resource/url > properties元素)、常用配置项如缓存、延迟加载、执行器类型等,并详解了多环境配置方式及事务管理(JDBC与MANAGED)。适用于需掌握MyBatis配置原理的开发者。
1-MongoDB相关概念
MongoDB是一款高性能、无模式的文档型NoSQL数据库,适用于高并发读写、海量数据存储及高扩展性需求场景。其灵活的BSON文档模型、丰富的查询功能和分布式架构,使其广泛应用于社交、游戏、物联网等领域。
One Trick Per Day
初始化Map应避免直接指定容量,建议使用Guava的newHashMapWithExpectedSize或手动计算扩容阈值。严禁使用Executors创建线程池,易导致OOM,推荐通过ThreadPoolExecutor或Guava方式自定义线程池。Arrays.asList返回不可变集合,禁止修改操作。遍历Map时优先使用entrySet提升性能。SimpleDateFormat非线程安全,禁用static修饰,推荐ThreadLocal或Java 8新时间API。并发修改记录需加锁,低冲突场景可选乐观锁配合version字段。
算法入门:专题二---滑动窗口(长度最小的子数组)类型题目攻克!
给定一个正整数数组和目标值target,找出总和大于等于target的最短连续子数组长度。利用滑动窗口(双指针)优化,维护窗口内元素和,通过单调性避免重复枚举,时间复杂度O(n)。当窗口和满足条件时收缩左边界,更新最小长度,最终返回结果。
浏览器的缓存方式几种
浏览器缓存方式主要包括:1. **强制缓存**,通过 `Expires` 或 `Cache-Control` 控制,缓存有效期内不发起请求;2. **协商缓存**,使用 `ETag` 和 `Last-Modified` 判断资源是否更新;3. **Service Worker 缓存**,适用于 PWA 应用,拦截并返回缓存;4. **浏览器存储**,如 LocalStorage、SessionStorage 和 IndexedDB,用于持久化或会话级数据存储;5. **Push Cache**,仅限 HTTP/2,服务器主动推送资源。选择合适的缓存策略可优化性能和用户体验。
阿里云百炼 x AnalyticDB向量引擎, 搭积木式轻松开发专属大模型应用
对大模型应用跃跃欲试,但奈何技术栈复杂难以下手?已经进行试水,但缺乏调优手段无法保障召回率和问答准确度?自行搭建大模型、向量检索引擎、服务API等基础组件难以运维?大模型种类繁多,但缺乏行业模型和应用模板?阿里云百炼 x AnalyticDB向量引擎推出一站式企业专属大模型开发和应用平台,像搭积木一样轻松完成企业专属大模型应用的开发,提供应用API,可一键接入企业自己的业务应用对外提供服务。