>@Service、@Repository、@Controller 都是 @Component 的特化,用于标识不同应用分层的Bean。它们使代码结构更清晰,且 @Repository 还提供将特定数据库异常转为Spring统一异常的功能。 这是一个非常核心且常见的 Spring 框架面试题。我们来详细解释一下 , , , 这四个注解的区别。 核心思想:都是 首先,最重要的一点是:, , 本质上都是 的特例(或称为“衍生的构造型注解”)。 如果你查看这三个注解的源码,会发现它们内部都使用了 元注解。 这意味着,从 Spring 容器的角度来看,这四个注解的作用是相同的:将一个类标识为 Spring Bean,使其能被组件扫描(Component Scanning)机制发现并自动注册到应用上下文中。 既然功能上都能创建 Bean,为什么还要分得这么细呢?答案是:为了更好的代码可读性和提供特定的附加功能。 --- 各个注解的详细区别 这四个注解对应了经典的三层架构(Presentation Layer, Business Layer, Data Access Layer)。 1. 层...