54 归档分页
370 留言互动
4 核心专题

最近更新

Java 2024-07-16

SpringBoot结合ip2region实现博客评论显示IP属地

本文介绍在Spring Boot博客系统中使用ip2region实现评论IP属地显示的完整方案。通过IpParseUtil类的getIpAddr获取请求IP,再用parse方法解析为“国家|区域|省份|城市|ISP”或自定义字段列表。将解析结果写入Comment实体的location字段,在前端页面读取并展示。文章还列出所需技术栈(Spring Boot、MySQL、HTML/CSS/JS、ip2region、Commons IO、Lombok)以及关键代码实现和集成步骤,帮助开发者快速为评论添加地理位置信息,提高互动体验。

SpringBoot 阅读全文
Java 2024-07-15

实现异步天气数据获取与Spring缓存集成

本文介绍在 Spring Boot 中通过 @Async 实现天气数据的异步获取,并使用 @Cacheable 将结果缓存,降低对高德天气 API 的重复调用。示例代码演示了获取客户端 IP、解析地区、调用高德地理编码和天气接口、处理返回数据并把天气信息写入模型。文中说明了自定义 IP 解析工具、API Key 替换、RestTemplate/ WebClient 选择以及项目需引入 Spring Cache 与 Spring Web 的前置条件。结合异步与缓存后,可提升响应速度、减轻服务器负载、改善用户体验。

工具类 阅读全文
Java 2024-07-04

Java 17 新功能介绍(LTS)

2021 年 9 月 14 日发布的 Java 17 是长期支持(LTS)版,带来 14 项新特性:恢复始终严格的浮点语义;新增统一的 RandomGenerator 接口与工厂;在 macOS 上采用 Apple Metal 渲染并支持 AArch64 架构;删除已废弃的 Applet API;加强 JDK 内部封装,取消 --illegal-access 选项;预览 Switch 模式匹配;移除 RMI Activation;正式推出密封类;剔除实验性的 AOT/JIT 编译器;弃用 Security Manager;孵化外部函数与内存 API;二次孵化 Vector API;以及支持基于上下文的反序列化过滤器。全文提供下载链接与官方文档,属 Java 新特性教程系列。

Java 17 阅读全文
Java 2023-02-21

SpringBoot+Elasticsearch按日期实现动态创建索引

文章介绍了在 SpringBoot 中通过 @Document 的 EL 表达式实现 Elasticsearch 按日期动态创建索引的完整方案。核心思路是把索引后缀(如 yyyy_MM_dd)封装为 Bean(esIndex),并在每天零点的定时任务中销毁旧 Bean、重新注册新值,同时手动调用 ElasticsearchRestTemplate 创建索引,以保证 shards、replicas 等配置不丢失。实体类需声明 createIndex = false,避免自动创建导致参数缺失;示例代码包括配置类、实体、Repository 与 Controller,演示了定时更新索引和保存数据后在 Kibana 中观察新索引的效果。

SpringBoot Elasticsearch 阅读全文
Java 2024-07-11

HTML集成优雅的实时输入清除功能

本文介绍了在网页表单中实现实时输入清除的完整方案。通过在输入框右侧嵌入一个隐藏的“×”图标(HTML + <span>),利用 CSS 将图标定位于输入框内部,并通过 JavaScript 监听 input、focus、blur 等事件,在有内容时显示图标、点击后清空文本并隐藏图标。实现步骤简洁、代码可复用,能够提升表单的交互便利性和整体用户体验。

Java 2023-02-20

PageHelper结合Lambda表达式实现简洁的分页封装

本文演示了在Spring Boot 项目中通过引入 `pagehelper‑spring‑boot‑starter`,结合 Java Lambda 表达式,实现统一、简洁的分页封装。首先定义 `BaseQueryParam` 只包含 `pageNum`、`pageSize`,供所有查询继承;随后实现通用的 `NewPageBean<T>`,在 `generatePage` 方法中使用 `PageHelper.startPage(...).doSelectPage(ISelect)` 通过 Lambda 调用 Mapper,自动返回 `total`、`list` 与 `MyPage`(页码、页大小、总页数、前后页)等分页信息。示例代码展示了 `TaskMapper`、对应 XML 与 `TaskController` 的调用方式,访问 `http://localhost:9090/demo/test?pageNum=2&pageSize=2` 即可得到结构化的分页响应。整个方案实现了分页逻辑的高度复用与代码简化。

Lambda 阅读全文