📄🦌🙌🐟🏖️
日志记录
Where there is a where there is a way
随机文章
按住 Shift 横向滚动
热门文章
按住 Shift 横向滚动
登录验证基础

登录验证基础

本文系统介绍了登录认证流程及常见会话技术。用户初次登录后,通过会话技术(Cookie、Session、Token)维护状态。Cookie由服务器通过Set-Cookie写入浏览器,后续请求自动携带;Session在服务器端存储用户数据,依赖Cookie传递SessionId;令牌(Token)如JWT,由服务器生成并返回客户端,后续请求携带Token即可验证身份,无需服务端存储。常见登录验证方式包括:Cookie+Session(经典但存在服务端压力、集群同步及CSRF风险)、Token登录(无状态、安全灵活)、SSO单点登录(通过统一认证中心实现多系统一次登录)、OAuth第三方登录(利用微信、QQ等外部平台认证)。最后推荐用于用户认证与授权的经典五张表设计(用户、角色、权限等)。

EhCache3

EhCache3

Ehcache 3 是开源的 Java 缓存库,用于加速应用性能。核心组件包括 CacheManager(管理缓存生命周期)、Cache(存储数据)、CacheConfiguration(配置容量、过期策略等)、CacheLoader(从数据源加载数据)、CacheWriter(写入外部数据源)和 CacheEventListener(监听缓存事件)。功能特性有多级存储(堆内存、堆外、磁盘)、缓存策略(TTL/TTI 过期、LRU/LFU/FIFO 驱逐)、持久化与溢出、动态配置、JCache/Spring 集成、线程安全及 JMX 监控。快速入门需引入 `ehcache` 依赖,可通过 API 或 XML 配置 CacheManager 和 Cache,并执行 put/get/remove 操作。配置常见错误:heap 应小于 offheap 和 disk,且不可将 CacheManager 交由 Spring 管理(避免重复销毁)。

Ehcache2详解

Ehcache2详解

Ehcache 2 是一个 Java 缓存库,通过内存(堆/堆外)和磁盘存储提升性能。支持 TTL/TTI 过期、LRU 淘汰策略、持久化及 Terracotta 分布式缓存。核心组件包括 CacheManager、Cache、CacheLoader 和 CacheWriter。快速入门需添加依赖、配置 ehcache.xml、创建 CacheManager Bean 并注入使用。

Ehcache介绍

Ehcache介绍

Ehcache 是一个开源的 Java 缓存工具,支持多级缓存(堆内、堆外、磁盘、集群),可突破内存限制处理 TB 级数据。它具备缓存持久化、分布式组网、细粒度过期时间设定等特性,并兼容 JCache 与 SpringCache 规范。相比 Caffeine 和 Redis:Caffeine 适合简单本地缓存;Redis 专注集中式分布式缓存保证一致性;Ehcache 则介于两者之间,既能提供本地缓存的性能优势,又具备分布式缓存的数据一致性与容量扩展能力。选型时,简单少量数据用 Caffeine,本地大数据量需磁盘缓存用 Ehcache,大型分布式多节点系统重度缓存场景用 Redis。

Caffeine详解

Caffeine详解

Caffeine 是一个基于 Java8 的高性能缓存库,旨在提供近乎最佳的缓存命中率。与 ConcurrentMap 不同,Caffeine 支持自动驱逐策略(基于大小、时间或引用)以限制内存占用,并提供了自动加载(LoadingCache)和异步加载(AsyncLoadingCache)功能。其填充策略包括手动、自动、异步手动和异步自动四种方式,确保缓存缺失时高效生成值。驱逐策略支持基于最大容量/权重、过期时间(访问后、写入后、自定义)以及弱/软引用。此外,Caffeine 还提供显式移除、移除监听器、定时刷新(与过期配合使用)、统计信息(命中率、驱逐数等)以及运行时策略调整能力。通过惰性删除和手动清理(cleanUp)维护缓存一致性。

过滤器

过滤器

本文介绍了Java Web中的Filter过滤器。Filter用于拦截请求和响应,实现统一的预处理和后处理逻辑。快速入门部分展示了如何创建和配置Filter。执行流程包括请求到达Filter、执行过滤逻辑、放行后执行目标资源、再返回执行后处理逻辑。Filter的拦截路径可通过注解配置,支持精确路径、目录匹配和后缀匹配等。多个Filter可组成过滤器链,执行顺序由类名字符串的自然排序决定,即按Filter类名的字母顺序依次调用。

Servlet在SpringBoot程序中常用的类

Servlet在SpringBoot程序中常用的类

**摘要**:Servlet是用于处理HTTP请求和响应的Java程序,是动态网页技术的基础。Tomcat作为Web服务器和Servlet容器,负责将请求转发给Servlet并返回响应。当前Servlet已被SpringBoot框架替代,但其核心概念仍值得了解。HttpServletRequest接口封装了HTTP请求,提供获取请求行、请求头等方法;HttpServletResponse用于设置响应头、状态码和发送数据。Cookie是存储在客户端的小型文件,用于跟踪用户状态;HttpSession则在服务端维护用户会话信息,支持跨请求的数据存储。这些组件共同构成了Java Web应用的基础交互机制。

MybatisPlus扩展功能

MybatisPlus扩展功能

本文介绍了MyBatis-Plus的五个实用功能:**代码生成器**可通过下载插件、配置数据库信息快速生成代码;**静态工具**封装了CRUD操作,用于避免Service间相互调用导致的依赖循环;**逻辑删除**通过标记字段而非物理删除数据,需配置全局属性并在实体类添加`@TableLogic`注解;**枚举处理器**利用`MybatisEnumTypeHandler`实现Java枚举与数据库值的自动转换,支持`@EnumValue`和`@JsonValue`注解;**JSON处理器**可使数据库JSON字段直接映射为Java对象,需在实体类添加`@TableName(autoResultMap=true)`和`@TableField(typeHandler=JacksonTypeHandler.class)`。这些功能简化了开发流程,提升了代码可维护性。

MybatisPlus核心功能.md

MybatisPlus核心功能.md

MyBatis-Plus 的条件构造器(Wrapper)是构建数据库查询条件的核心工具,支持链式调用,包括 QueryWrapper、UpdateWrapper 及其 Lambda 版本,避免硬编码字段名。Wrappers 工厂类可快速创建实例。Service 层继承 IService,实现类继承 ServiceImpl,封装了 save、remove、update、get、list、page、count 等 CRUD 方法。Mapper 层继承 BaseMapper,提供 insert、delete、update、select 操作。分页功能通过 MybatisPlusInterceptor 配置 PaginationInnerInterceptor 实现,使用 IPage 进行分页查询。注意使用 Lambda 表达式提高可维护性,避免复杂 SQL 和 SQL 注入风险。

MybatisPlus快速入门.md

MybatisPlus快速入门.md

MyBatis-Plus是MyBatis的增强工具,无侵入性,提供丰富CRUD操作、代码生成器、条件构造器、分页插件及性能优化等功能。快速入门需引入依赖、配置数据源和MyBatis-Plus设置,创建数据库表及对应实体类,自定义Mapper接口继承BaseMapper即可使用通用方法。常用注解包括@TableName(指定表名)、@TableId(主键及生成策略)、@TableField(字段映射及排除非数据库字段)。常用配置可在yml中设置type-aliases-package、mapper-locations、日志输出及全局ID策略等。

© 2026 日志记录