@Controller
- 作用:标识一个类为 Spring MVC 控制器,处理HTTP请求和响应。
- 使用场景:通常用于表现层,接收用户输入并返回视图。
@RestController
- 作用:组合了 @Controller 和 @ResponseBody,标识一个类为 RESTful Web 服务控制器,直接返回 JSON 或 XML 格式的数据。
- 使用场景:用于 REST API 的表现层,处理 HTTP 请求并返回数据。
@Service
- 作用:标识一个类为业务逻辑组件(服务层)。
- 使用场景:用于业务逻辑层,处理服务请求。
@Repository
- 作用:用于标记数据访问层(DAO层)的类。它标识这个类能够访问数据库或者其他持久化存储,并且将数据库操作异常转换为Spring的数据访问异常(DataAccessException)。
- 使用场景:用于数据访问层,处理数据库操作。
@Component
- 作用:标识一个类为 Spring 组件,被 Spring 容器管理,用于定义通用的 bean。
- 使用场景:标注通用的组件类,不限定具体的功能角色
@Bean
- 作用:在方法级别上使用,定义一个 Spring bean,并将其注册到 Spring 容器中。
- 使用场景:通常在 @Configuration 类中使用,显式地定义 bean。
@Configuration
- 作用:标识一个类为配置类,用于定义 Spring bean 和配置。
- 使用场景:用于替代传统的 XML 配置文件,使用@Bean注解声明Bean,Spring会根据这些配置生成相应的Bean定义。
简单的 Spring 项目结构