<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>后端 on 吾爱主机</title><link>https://blog.waihost.com/tags/%E5%90%8E%E7%AB%AF/</link><description>Recent content in 后端 on 吾爱主机</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><lastBuildDate>Fri, 01 May 2026 14:00:00 +0000</lastBuildDate><atom:link href="https://blog.waihost.com/tags/%E5%90%8E%E7%AB%AF/index.xml" rel="self" type="application/rss+xml"/><item><title>2025 年 Java Spring 面试题精选</title><link>https://blog.waihost.com/posts/java-spring-interview-2025/</link><pubDate>Fri, 01 May 2026 14:00:00 +0000</pubDate><guid>https://blog.waihost.com/posts/java-spring-interview-2025/</guid><description>&lt;img src="https://blog.waihost.com/images/covers/java-spring-interview-2025.svg" alt="Featured image of post 2025 年 Java Spring 面试题精选" /&gt;&lt;h2 id="概述"&gt;&lt;a href="#%e6%a6%82%e8%bf%b0" class="header-anchor"&gt;&lt;/a&gt;概述
&lt;/h2&gt;&lt;p&gt;本文整理了 2025 年常见的 Java Spring 面试题，涵盖 Spring Core、Spring Boot、Spring MVC、Spring Cloud 等核心知识点，帮助开发者系统备战面试。&lt;/p&gt;
&lt;h2 id="一spring-core"&gt;&lt;a href="#%e4%b8%80spring-core" class="header-anchor"&gt;&lt;/a&gt;一、Spring Core
&lt;/h2&gt;&lt;h3 id="1-什么是-ioc控制反转"&gt;&lt;a href="#1-%e4%bb%80%e4%b9%88%e6%98%af-ioc%e6%8e%a7%e5%88%b6%e5%8f%8d%e8%bd%ac" class="header-anchor"&gt;&lt;/a&gt;1. 什么是 IoC（控制反转）？
&lt;/h3&gt;&lt;p&gt;IoC 是一种设计思想，将对象的创建和依赖管理交给 Spring 容器，而不是由开发者手动 &lt;code&gt;new&lt;/code&gt; 对象。Spring 通过依赖注入（DI）实现 IoC，降低了代码耦合度。&lt;/p&gt;
&lt;h3 id="2-spring-bean-的作用域有哪些"&gt;&lt;a href="#2-spring-bean-%e7%9a%84%e4%bd%9c%e7%94%a8%e5%9f%9f%e6%9c%89%e5%93%aa%e4%ba%9b" class="header-anchor"&gt;&lt;/a&gt;2. Spring Bean 的作用域有哪些？
&lt;/h3&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;作用域&lt;/th&gt;
					&lt;th&gt;说明&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;singleton&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;默认，整个容器中只有一个实例&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;prototype&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;每次请求创建一个新的实例&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;request&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;每次 HTTP 请求创建一个实例（Web 应用）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;session&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;每个 HTTP Session 创建一个实例&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;application&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;每个 ServletContext 创建一个实例&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="3-autowired-和-resource-的区别"&gt;&lt;a href="#3-autowired-%e5%92%8c-resource-%e7%9a%84%e5%8c%ba%e5%88%ab" class="header-anchor"&gt;&lt;/a&gt;3. @Autowired 和 @Resource 的区别？
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;@Autowired&lt;/code&gt;：Spring 注解，默认按类型注入，可配合 &lt;code&gt;@Qualifier&lt;/code&gt; 按名称注入&lt;/li&gt;
&lt;li&gt;&lt;code&gt;@Resource&lt;/code&gt;：JSR-250 注解，默认按名称注入，找不到再按类型注入&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="4-spring-bean-的生命周期"&gt;&lt;a href="#4-spring-bean-%e7%9a%84%e7%94%9f%e5%91%bd%e5%91%a8%e6%9c%9f" class="header-anchor"&gt;&lt;/a&gt;4. Spring Bean 的生命周期？
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;实例化 Bean&lt;/li&gt;
&lt;li&gt;属性注入（依赖注入）&lt;/li&gt;
&lt;li&gt;调用 &lt;code&gt;BeanNameAware&lt;/code&gt;、&lt;code&gt;BeanFactoryAware&lt;/code&gt; 等接口&lt;/li&gt;
&lt;li&gt;调用 &lt;code&gt;BeanPostProcessor#postProcessBeforeInitialization&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;调用 &lt;code&gt;@PostConstruct&lt;/code&gt; / &lt;code&gt;InitializingBean#afterPropertiesSet&lt;/code&gt; / &lt;code&gt;init-method&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;调用 &lt;code&gt;BeanPostProcessor#postProcessAfterInitialization&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Bean 就绪，可使用&lt;/li&gt;
&lt;li&gt;调用 &lt;code&gt;@PreDestroy&lt;/code&gt; / &lt;code&gt;DisposableBean#destroy&lt;/code&gt; / &lt;code&gt;destroy-method&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="二spring-boot"&gt;&lt;a href="#%e4%ba%8cspring-boot" class="header-anchor"&gt;&lt;/a&gt;二、Spring Boot
&lt;/h2&gt;&lt;h3 id="5-spring-boot-的核心优势"&gt;&lt;a href="#5-spring-boot-%e7%9a%84%e6%a0%b8%e5%bf%83%e4%bc%98%e5%8a%bf" class="header-anchor"&gt;&lt;/a&gt;5. Spring Boot 的核心优势？
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;自动配置&lt;/strong&gt;：根据引入的依赖自动配置 Bean&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;起步依赖&lt;/strong&gt;：简化 Maven/Gradle 依赖管理&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;内嵌服务器&lt;/strong&gt;：无需外部 Tomcat，直接 &lt;code&gt;java -jar&lt;/code&gt; 运行&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Actuator&lt;/strong&gt;：提供生产级监控端点&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="6-springbootapplication-注解的作用"&gt;&lt;a href="#6-springbootapplication-%e6%b3%a8%e8%a7%a3%e7%9a%84%e4%bd%9c%e7%94%a8" class="header-anchor"&gt;&lt;/a&gt;6. @SpringBootApplication 注解的作用？
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;@SpringBootApplication&lt;/code&gt; 是组合注解，包含：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;@SpringBootConfiguration&lt;/code&gt;：标记为配置类&lt;/li&gt;
&lt;li&gt;&lt;code&gt;@EnableAutoConfiguration&lt;/code&gt;：启用自动配置&lt;/li&gt;
&lt;li&gt;&lt;code&gt;@ComponentScan&lt;/code&gt;：扫描当前包及子包的组件&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="7-spring-boot-自动配置原理"&gt;&lt;a href="#7-spring-boot-%e8%87%aa%e5%8a%a8%e9%85%8d%e7%bd%ae%e5%8e%9f%e7%90%86" class="header-anchor"&gt;&lt;/a&gt;7. Spring Boot 自动配置原理？
&lt;/h3&gt;&lt;p&gt;核心是 &lt;code&gt;@EnableAutoConfiguration&lt;/code&gt; 注解，通过 &lt;code&gt;SpringFactoriesLoader&lt;/code&gt; 加载 &lt;code&gt;META-INF/spring.factories&lt;/code&gt;（Spring Boot 3.x 改为 &lt;code&gt;META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports&lt;/code&gt;）中定义的自动配置类。结合 &lt;code&gt;@Conditional&lt;/code&gt; 系列注解（如 &lt;code&gt;@ConditionalOnClass&lt;/code&gt;、&lt;code&gt;@ConditionalOnMissingBean&lt;/code&gt;）按条件决定是否生效。&lt;/p&gt;
&lt;h3 id="8-如何自定义-starter"&gt;&lt;a href="#8-%e5%a6%82%e4%bd%95%e8%87%aa%e5%ae%9a%e4%b9%89-starter" class="header-anchor"&gt;&lt;/a&gt;8. 如何自定义 Starter？
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;创建 &lt;code&gt;xxx-spring-boot-autoconfigure&lt;/code&gt; 模块，编写自动配置类&lt;/li&gt;
&lt;li&gt;创建 &lt;code&gt;xxx-spring-boot-starter&lt;/code&gt; 模块，引入 autoconfigure 依赖&lt;/li&gt;
&lt;li&gt;在 &lt;code&gt;META-INF/spring.factories&lt;/code&gt; 或 &lt;code&gt;AutoConfiguration.imports&lt;/code&gt; 中注册&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="三spring-mvc"&gt;&lt;a href="#%e4%b8%89spring-mvc" class="header-anchor"&gt;&lt;/a&gt;三、Spring MVC
&lt;/h2&gt;&lt;h3 id="9-spring-mvc-的请求处理流程"&gt;&lt;a href="#9-spring-mvc-%e7%9a%84%e8%af%b7%e6%b1%82%e5%a4%84%e7%90%86%e6%b5%81%e7%a8%8b" class="header-anchor"&gt;&lt;/a&gt;9. Spring MVC 的请求处理流程？
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;客户端发送请求到 &lt;code&gt;DispatcherServlet&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DispatcherServlet&lt;/code&gt; 查询 &lt;code&gt;HandlerMapping&lt;/code&gt; 获取对应的 &lt;code&gt;Handler&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;通过 &lt;code&gt;HandlerAdapter&lt;/code&gt; 调用具体的 Controller 方法&lt;/li&gt;
&lt;li&gt;Controller 处理业务，返回 &lt;code&gt;ModelAndView&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ViewResolver&lt;/code&gt; 解析视图名称&lt;/li&gt;
&lt;li&gt;渲染视图并返回响应&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="10-restcontroller-和-controller-的区别"&gt;&lt;a href="#10-restcontroller-%e5%92%8c-controller-%e7%9a%84%e5%8c%ba%e5%88%ab" class="header-anchor"&gt;&lt;/a&gt;10. @RestController 和 @Controller 的区别？
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;@Controller&lt;/code&gt;：返回视图名称，需要配合 &lt;code&gt;@ResponseBody&lt;/code&gt; 返回数据&lt;/li&gt;
&lt;li&gt;&lt;code&gt;@RestController&lt;/code&gt;：等价于 &lt;code&gt;@Controller + @ResponseBody&lt;/code&gt;，所有方法默认返回 JSON/XML&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="四spring-cloud"&gt;&lt;a href="#%e5%9b%9bspring-cloud" class="header-anchor"&gt;&lt;/a&gt;四、Spring Cloud
&lt;/h2&gt;&lt;h3 id="11-常见的服务注册中心有哪些"&gt;&lt;a href="#11-%e5%b8%b8%e8%a7%81%e7%9a%84%e6%9c%8d%e5%8a%a1%e6%b3%a8%e5%86%8c%e4%b8%ad%e5%bf%83%e6%9c%89%e5%93%aa%e4%ba%9b" class="header-anchor"&gt;&lt;/a&gt;11. 常见的服务注册中心有哪些？
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Nacos&lt;/strong&gt;：阿里开源，支持配置管理和服务发现&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Eureka&lt;/strong&gt;：Netflix 开源，AP 模型（已停止维护）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Consul&lt;/strong&gt;：HashiCorp 出品，支持健康检查&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Zookeeper&lt;/strong&gt;：CP 模型，强一致性&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="12-什么是服务熔断和降级"&gt;&lt;a href="#12-%e4%bb%80%e4%b9%88%e6%98%af%e6%9c%8d%e5%8a%a1%e7%86%94%e6%96%ad%e5%92%8c%e9%99%8d%e7%ba%a7" class="header-anchor"&gt;&lt;/a&gt;12. 什么是服务熔断和降级？
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;熔断&lt;/strong&gt;：当下游服务异常率超过阈值时，熔断器打开，快速失败，避免雪崩&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;降级&lt;/strong&gt;：熔断后的兜底策略，返回默认值或缓存数据&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;常用框架：Sentinel、Resilience4j、Hystrix（已停止维护）&lt;/p&gt;
&lt;h3 id="13-spring-cloud-gateway-核心概念"&gt;&lt;a href="#13-spring-cloud-gateway-%e6%a0%b8%e5%bf%83%e6%a6%82%e5%bf%b5" class="header-anchor"&gt;&lt;/a&gt;13. Spring Cloud Gateway 核心概念？
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Route（路由）&lt;/strong&gt;：网关的基本单元&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Predicate（断言）&lt;/strong&gt;：匹配请求条件&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Filter（过滤器）&lt;/strong&gt;：对请求/响应进行处理&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="五数据访问"&gt;&lt;a href="#%e4%ba%94%e6%95%b0%e6%8d%ae%e8%ae%bf%e9%97%ae" class="header-anchor"&gt;&lt;/a&gt;五、数据访问
&lt;/h2&gt;&lt;h3 id="14-spring-事务传播行为有哪些"&gt;&lt;a href="#14-spring-%e4%ba%8b%e5%8a%a1%e4%bc%a0%e6%92%ad%e8%a1%8c%e4%b8%ba%e6%9c%89%e5%93%aa%e4%ba%9b" class="header-anchor"&gt;&lt;/a&gt;14. Spring 事务传播行为有哪些？
&lt;/h3&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;传播行为&lt;/th&gt;
					&lt;th&gt;说明&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;REQUIRED&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;默认，有则加入，无则创建&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;REQUIRES_NEW&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;总是新建事务，挂起当前事务&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;SUPPORTS&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;有则加入，无则非事务执行&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;NOT_SUPPORTED&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;非事务执行，挂起当前事务&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;MANDATORY&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;必须在事务中，否则抛异常&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;NEVER&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;不能在事务中，否则抛异常&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;NESTED&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;嵌套事务，外部回滚则一起回滚&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="15-transactional-失效的常见场景"&gt;&lt;a href="#15-transactional-%e5%a4%b1%e6%95%88%e7%9a%84%e5%b8%b8%e8%a7%81%e5%9c%ba%e6%99%af" class="header-anchor"&gt;&lt;/a&gt;15. @Transactional 失效的常见场景？
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;方法非 &lt;code&gt;public&lt;/code&gt; 修饰&lt;/li&gt;
&lt;li&gt;同类方法内部调用（未经过代理）&lt;/li&gt;
&lt;li&gt;异常被 catch 未抛出&lt;/li&gt;
&lt;li&gt;抛出的异常类型不是 &lt;code&gt;RuntimeException&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;数据库引擎不支持事务（如 MyISAM）&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="六并发与缓存"&gt;&lt;a href="#%e5%85%ad%e5%b9%b6%e5%8f%91%e4%b8%8e%e7%bc%93%e5%ad%98" class="header-anchor"&gt;&lt;/a&gt;六、并发与缓存
&lt;/h2&gt;&lt;h3 id="16-spring-中如何使用缓存"&gt;&lt;a href="#16-spring-%e4%b8%ad%e5%a6%82%e4%bd%95%e4%bd%bf%e7%94%a8%e7%bc%93%e5%ad%98" class="header-anchor"&gt;&lt;/a&gt;16. Spring 中如何使用缓存？
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-java" data-lang="java"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nd"&gt;@Cacheable&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;#34;users&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;#34;#id&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kd"&gt;public&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;User&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;getUserById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Long&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;userMapper&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;selectById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nd"&gt;@CacheEvict&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;#34;users&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;#34;#id&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kd"&gt;public&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kt"&gt;void&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;deleteUser&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Long&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;userMapper&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;deleteById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;支持的缓存实现：Redis、Caffeine、EhCache 等。&lt;/p&gt;
&lt;h3 id="17-async-异步执行注意事项"&gt;&lt;a href="#17-async-%e5%bc%82%e6%ad%a5%e6%89%a7%e8%a1%8c%e6%b3%a8%e6%84%8f%e4%ba%8b%e9%a1%b9" class="header-anchor"&gt;&lt;/a&gt;17. @Async 异步执行注意事项？
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;需在启动类添加 &lt;code&gt;@EnableAsync&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;方法需为 &lt;code&gt;public&lt;/code&gt;，且不能在同一个类内部调用&lt;/li&gt;
&lt;li&gt;推荐自定义线程池，避免使用默认的 &lt;code&gt;SimpleAsyncTaskExecutor&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="总结"&gt;&lt;a href="#%e6%80%bb%e7%bb%93" class="header-anchor"&gt;&lt;/a&gt;总结
&lt;/h2&gt;&lt;p&gt;以上是 2025 年高频 Java Spring 面试题的核心要点。建议结合源码理解底层原理，而不仅仅背诵答案。Spring 生态不断演进，持续关注 Spring Boot 3.x 和 Spring Cloud 2024/2025 版本的新特性至关重要。&lt;/p&gt;</description></item></channel></rss>