Spring Boot

搜索结果

在博客中搜索相关文章

79 篇文章 7

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` 即可得到结构化的分页响应。整个方案实现了分页逻辑的高度复用与代码简化。

🎁 限时福利!20张VIP会员体验券免费领 - 通意千应AI平台技术解析

通意千应AI平台上线,限时免费送出20张VIP会员体验券,兑换后可使用全套顶级模型(DeepSeek、Kimi、Llama等)及深度思考、联网搜索、图片识别、文档解析、优先响应等专属功能。平台采用多模型融合、智能调度、异步生成和双模式图片传输技术,后端基于Spring Boot + MySQL + Redis,前端Vue.js。用户按步骤领取券码、注册登录、在会员中心兑换,即可畅享AI全能服务。

将Spring Boot项目部署到阿里云CentOS7并设置关闭命令行终端项目不停止运行

本文介绍了在阿里云 CentOS7 上部署 Spring Boot 项目并实现关闭终端后仍保持运行的完整流程:先在 yml 中更改数据库 IP,执行 clean‑package 打包得到 jar;登录云服务器,创建目录并上传 jar;编写 startup.sh 脚本,使用 `nohup java -jar /myworkspace/blog.jar --server.port=8081 &` 启动并将其设为可执行;通过 `chmod -R 777` 授权后运行脚本,使用 `tail -f nohup.out` 检查日志确认启动;提供了 Nginx HTTPS 配置参考;最后给出查询和 kill 进程停止 Spring Boot 的命令。

Dubbo最佳实战

本文概述了 Apache Dubbo 的定位与特性,重点阐述了基于 Zookeeper 的服务注册中心及服务治理流程。随后通过完整实战案例,演示了在 Maven 项目中搭建 API、Provider、Consumer 三个模块的步骤:定义共享接口、在提供者中实现并使用 @Service 注解注册服务、配置 Dubbo 与 Zookeeper 参数、编写启动类;在消费者中通过 @Reference 引用接口、配置注册中心并实现调用。文中提供了完整的依赖、配置文件、代码示例及运行流程,帮助读者快速上手 Dubbo 的服务发布与消费。

基于SpringBoot的在线招聘网站

本文介绍了一个基于SpringBoot的在线招聘系统的整体设计与功能实现。系统采用SpringBoot、MyBatisPlus、Layui、MySQL、Redis、Shiro、WebSocket、Thymeleaf等技术栈,分为游客、求职者、HR和管理员四类角色。游客可浏览首页;求职者可进行职位检索、查看详情、在线聊天、生成并分享简历链接,且支持个人信息和密码修改;HR可管理公司信息、发布/编辑/下线岗位、管理员工、与求职者聊天并点击职位或简历链接;管理员提供用户、简历、公司、岗位的全局管理、聊天记录监控及封禁违规用户等后台功能。整体实现了职位查询、即时通讯、敏感词过滤及权限控制等核心业务。

JVM内存模型深度剖析与优化

本文系统阐述了JVM的整体结构与内存模型,重点解释了Minor GC中对象复制后引用的更新机制——在根扫描阶段记录引用并在对象搬迁后统一指向新地址。随后列举了常用的JVM启动参数(‑Xms、‑Xmx、‑Xmn、‑Xss、‑XX:MetaspaceSize/MaxMetaspaceSize 等)及其含义与调优原则,指出元空间大小调整会触发代价高昂的Full GC,建议将两者设为相同且足够大。通过StackOverflowError 示例说明‑Xss 对线程栈容量和并发线程数的影响。最后给出面向日均百万级订单系统的调优建议:尽量让对象在新生代分配回收,避免频繁晋升至老年代,并为系统预留充足内存,降低GC次数。

还在频繁定义常量?不如试试用枚举代替

常量经常被写成一组固定字符串,实际应使用枚举。枚举本质是类,可定义属性、方法,提供类型安全、可直接在switch中使用、拥有values()遍历、可封装额外信息(如HttpStatus)并实现业务逻辑。相较于单纯的String常量,代码更简洁、可靠,且易于维护。虽不是所有常量都必须改为枚举,但在成员在编译期已确定的情形下,枚举是更优选择。

Java Record:重新定义数据载体的简洁与安全

Java 16 正式引入 Record,提供一种简洁的不可变数据载体。它自动生成 getter、equals、hashCode、toString 与构造函数,省去大量样板代码,字段隐式 final,保证不可变性。仍可定义紧凑构造函数和自定义方法,实现参数校验或业务逻辑。适用于 DTO、复合键、模式匹配等场景,但不宜用于需要继承或可变状态的类(如 JPA 实体)。遵循仅用于简单数据模型的最佳实践,可显著提升代码可读性和安全性。

Linux命令速查手册

本文提供Linux常用命令速查,包括查看系统硬件信息(arch、uname、/proc/*、lspci、lsusb),时间管理(date、cal、clock),关机/重启(shutdown、reboot),文件目录操作(cd、ls、tree、mkdir、rm、mv、cp、ln、touch),文件搜索(find、locate、whereis、which),挂载/卸载文件系统(mount、umount、fuser),磁盘空间查询(df、du、rpm、dpkg),用户组管理(useradd、groupadd、passwd、chage),权限与属性设置(chmod、chown、chgrp、chmod +s/g/t、chattr),压缩打包(gzip、bzip2、tar、zip、rar),以及RPM 包的安装、查询、验证、升级和删除等完整示例。

IDEA 2022.2版本新特性

IDEA 2022.2 引入远程开发模式,后端部署在服务器,前端 thin client 本地使用,通过 SSH 分担重任务提升流畅度;全面支持 Spring 6 与 Spring Boot 3,包括 @AutoConfiguration、@ConfigurationProperties 等新特性;新增 ⌃⇧. /⌃⇧, 快捷键全局调节编辑器字体大小;JSON、YAML、properties 中的 http/https 链接可直接点击打开或生成 HTTP 请求;实验性 GraalVM 原生调试器支持调试本地镜像;Bean Validation 注解的消息属性支持引用与折叠;其他改进包括 Groovy 集成查询、升级内置 Kubernetes/Docker、运行当前文件无需配置、导入受信任 SSL 证书、HTTP 客户端优化、JBR11→JBR17、代码检查与补全增强等。

Spring MVC

Spring MVC 基于 MVC 模式,将系统划分为 Model(数据)、View(界面)和 Controller(业务逻辑)三层,降低耦合便于维护。DAO 层负责统一的数据访问,可使用 Spring JDBC、Hibernate、MyBatis 等实现。请求经由 DispatcherServlet、HandlerMapping、HandlerAdapter 处理,返回 ModelAndView,由 ViewResolver 解析视图并渲染,支持 HTML、JSON、PDF 等多种媒体。常用注解包括 @RequestMapping、@RequestParam、@RequestBody、@PathVariable 等,用于映射路径、绑定参数和处理请求体。拦截器实现 HandlerInterceptor,提供 preHandle、postHandle、afterCompletion 三阶段,可在 WebMvcConfigurer 中注册;对 Controller 用拦截器,对所有请求用 Filter,针对 Bean 用 Spring AOP 进行拦截。

解决SpringBoot打成jar包无法加载resources下文件的问题

SpringBoot 打成 jar 后,resources 目录下的文件(如 application.yml、ip2region.db 等)位于 jar 包内部,不能直接用文件路径读取,导致运行时加载失败。解决方案是使用 Spring 提供的 `ResourcePatternResolver`(如 `PathMatchingResourcePatternResolver`)获取资源对象,再通过 `getInputStream()` 读取内容,并在需要时复制到本地文件。示例代码展示了如何读取 `ip2region.db` 并写入磁盘,所需依赖仅为 Spring Core 与 Apache Commons‑IO。这样即可在 Linux 环境下正常访问 jar 包内的资源文件。