当前位置: 首页 > news >正文

第四篇:面试官:SpringBoot 场景化实战 10 问(第四弹·附图解)

面试官:SpringBoot 场景化实战 10 问(第四弹·附图解)

第四篇 · 10 道 SpringBoot 面试题(全新不重复)

  • 形式:对话 + 图解 + 大白话
  • 场景:项目落地中的真实痛点
  • 目标:解决常见生产问题

引言

做完前三套题,老王给你布置"生产落地卷"。这 10 问全部源于线上故障与最佳实践,务必掌握!


1. SpringBoot CLI 有啥用?优势?

面试官: 见过 spring run 吗?

候选人: SpringBoot CLI 让你 用 Groovy 写 Boot 脚本,省掉 public static void main。原型 Demo 秒级出结果,也支持 --watch 热重载。适合快速验证想法。


2. DevTools 远程热部署如何配置?

HTTP/Restart
IDE
Spring Boot Devtools
远程应用

候选人: spring.devtools.remote.secret 设置密钥,本地加 -Dspring.devtools.remote.secret 连接。仅开放内网,生产慎用。


3. 如何在 Boot 中开启 HTTPS?

面试官: 证书怎么配?

候选人: 三步:

  1. keytool -genkeypair -storepass pass -keystore keystore.p12 -storetype PKCS12 生成证书。
  2. application.yml
server:ssl:key-store: classpath:keystore.p12key-store-password: passkey-store-type: PKCS12enabled: true
  1. 8080->8443,HTTP 可以通过 TomcatConnectorCustomizer 重定向。

4. Spring Data JPA 方法命名查询规则?

候选人: findByUserIdAndStatusOrderByCreateTimeDesc(Pageable p) 解析为 SQL:WHERE user_id=? AND status=? ORDER BY create_time DESC。保留字:Top, First, Distinct, Between, IsNull… 记住 驼峰拆分 + 关键字映射


5. Flyway 数据库版本管理流程?

启动
Flyway scans V__*.sql
flyway_schema_history
执行未运行脚本
版本++

候选人: Boot 自动扫描 db/migration。脚本命名 V1__init.sqlV1_1__patch.sql。回滚用 R 版本或手动补丁,切勿改历史脚本。


6. Cache 抽象怎么接入 Redis?

面试官: @Cacheable 真能省数据库?

候选人: 引入 spring-boot-starter-data-redis, 加 @EnableCaching。在 yml 配:

spring:cache:type: redisredis:host: localhost

然后:

@Cacheable(value = "user", key = "#id")
public User getUser(Long id) { ... }

Boot 会用 RedisCacheManager,自动序列化。


7. 事务传播 PROPAGATION_REQUIRES_NEW 用例?

候选人: 记录审计日志不能跟主业务同事务,主业务回滚日志也得记。用 @Transactional(propagation = REQUIRES_NEW) 开新事务,独立提交。


8. AOP 环绕通知怎么打印请求耗时?

@Aspect
class LogTimeAspect {@Around("@annotation(org.springframework.web.bind.annotation.RequestMapping)")public Object around(ProceedingJoinPoint pjp) throws Throwable {long start = System.currentTimeMillis();Object ret = pjp.proceed();log.info("cost:{}ms", System.currentTimeMillis()-start);return ret;}
}

9. 自定义条件注解实现步骤?

候选人:

  1. 实现 Condition:判断环境变量/类路径。
  2. 写注解 @Conditional(MyCondition.class)
  3. 在配置类/Bean 上使用。

实例:只有测试环境加载 Mock Bean。


10. 多个 AutoConfiguration 顺序如何控制?

面试官: Bean 冲突咋办?

候选人: 在配置类上加 @AutoConfigureBefore, @AutoConfigureAfter 或使用 @Order。也可通过 spring.autoconfigure.exclude 排除整块自动配置。


结语

10 个生产实战题搞定!掌握这些技能,现场救火不再慌。

http://www.dtcms.com/a/265180.html

相关文章:

  • C语言笔记(鹏哥)上课板书+课件汇总 (编译和链接+linux讲解)
  • 【实战】CRMEB Pro 企业版安装教程(附 Nginx 反向代理配置 + 常见问题解决)
  • 深入理解C++11原子操作:从内存模型到无锁编程
  • Docker Dify安装 完整版本
  • Pytorch中torch.where()函数详解和实战示例
  • AIGC自我介绍笔记
  • Redis基础(1):NoSQL认识
  • sqlmap学习笔记ing(3.[MoeCTF 2022]Sqlmap_boy,cookie的作用)
  • UniApp完美对接RuoYi框架开发企业级应用
  • 基于 ethers.js 的区块链事件处理与钱包管理
  • UI前端大数据可视化实战技巧:动态数据加载与刷新策略
  • 【AI智能体】Coze 搭建个人旅游规划助手实战详解
  • 【Rancher Server + Kubernets】- Nginx-ingress日志持久化至宿主机
  • Pillow 安装使用教程
  • AI之Tool:Glean的简介、安装和使用方法、案例应用之详细攻略
  • 监测检测一体化项目实践——整体功能规划
  • uniapp实现图片预览,懒加载,下拉刷新等
  • 基于 TOF 图像高频信息恢复 RGB 图像的原理、应用与实现
  • 重要版本:无需关闭UAC通知的TOS无线USB助手1.0.4,它来了(2025-07-02)
  • 操作系统考试大题-处理机调度算法-详解-1
  • 2025-暑期训练二
  • 通过具有一致性嵌入的大语言模型实现端到端乳腺癌放射治疗计划制定|文献速递-最新论文分享
  • AlpineLinux安装部署zabbix
  • 进程概念以及相关函数
  • 进程(起个开头,复习的一天)day26
  • 轻松上手:使用Nginx实现高效负载均衡
  • 应用密码学纲要
  • 怎样理解:source ~/.bash_profile
  • 决策树(Decision tree)算法详解(ID3、C4.5、CART)
  • 在线学堂-3.媒资管理模块(二)