3、《Spring Boot 常见注解详解》

ops/2025/2/19 16:36:34/

Spring Boot 核心注解详解

摘要

本文深入剖析 Spring Boot 常用注解,如@SpringBootApplication@Controller@Service@Repository等,详细讲解它们的功能、使用场景及原理,帮助开发人员更好地理解和运用 Spring Boot 框架进行项目开发。

一、@SpringBootApplication

1.1 功能

@SpringBootApplication是 Spring Boot 应用的核心注解,它是一个组合注解,包含了@SpringBootConfiguration@EnableAutoConfiguration@ComponentScan

1.2 使用场景

在 Spring Boot 应用的主类上使用,用于启动 Spring Boot 应用。例如:

java">import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class MySpringBootApp {public static void main(String\[] args) {SpringApplication.run(MySpringBootApp.class, args);}}

1.3 原理

@SpringBootConfiguration:继承自@Configuration,表示该类是一个配置类,用于定义 Spring 的配置。

@EnableAutoConfiguration:开启自动配置,Spring Boot 会根据类路径下的依赖和应用的配置自动配置 Spring 应用。

@ComponentScan:自动扫描指定包及其子包下的组件,将其注册到 Spring 容器中。

二、@Controller

2.1 功能

用于标识一个控制器类,处理 Web 请求。

2.2 使用场景

在 Spring MVC 的控制器类上使用,接收 HTTP 请求并返回响应。例如:

java">import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.ResponseBody;@Controllerpublic class HelloController {@GetMapping("/hello")@ResponseBodypublic String hello() {return "Hello, Spring Boot!";}}

2.3 原理

@Controller是一个 @Component 的衍生注解,被@Controller注解的类会被 Spring 容器扫描并注册为 Bean,Spring MVC 会识别这些控制器类,并将请求映射到相应的方法上。

三、@Service

3.1 功能

用于标识一个服务层组件,主要用于业务逻辑的处理。

3.2 使用场景

在服务层的类上使用,例如用户服务类:

java">import org.springframework.stereotype.Service;@Servicepublic class UserService {// 业务逻辑代码}

3.3 原理

同样是@Component的衍生注解,被@Service注解的类会被 Spring 容器扫描并注册为 Bean,方便在其他组件中通过依赖注入的方式使用。

四、@Repository

4.1 功能

用于标识一个数据访问层组件,主要用于数据库操作。

4.2 使用场景

在数据访问层的类上使用,如用户数据访问类:

java">import org.springframework.stereotype.Repository;@Repositorypublic class UserRepository {// 数据库操作代码}

4.3 原理

也是@Component的衍生注解,被@Repository注解的类会被 Spring 容器扫描并注册为 Bean,同时 Spring 会对该类中抛出的数据访问异常进行转换,方便统一处理。

五、总结

Spring Boot 的这些核心注解@SpringBootApplication@Controller@Service@Repository等在 Spring Boot 应用开发中起着至关重要的作用。理解它们的功能、使用场景及原理,能够帮助开发者更高效地开发 Spring Boot 应用,充分发挥 Spring Boot 框架的优势。在实际项目中,根据不同的业务需求和层次结构,合理地使用这些注解,能够提高代码的可读性、可维护性和可扩展性。


http://www.ppmy.cn/ops/158687.html

相关文章

电商小程序(源码+文档+部署+讲解)

引言 随着移动互联网的快速发展,电商小程序成为连接消费者与商家的重要桥梁。电商小程序通过数字化手段,为消费者提供了一个便捷、高效的购物平台,从而提升购物体验和满意度。 系统概述 电商小程序采用前后端分离的架构设计,服…

2025年3月一区SCI-混沌进化优化算法Chaotic evolution optimization-附Matlab免费代码

引言 本期介绍了一种基于混沌动力学的元启发式算法-混沌进化优化算法Chaotic evolution optimization,CEO。CEO的主要灵感来源于二维离散记忆映射的混沌演化过程。通过利用记忆映射的超混沌特性,对CEO算法进行数学建模,为进化过程引入随机搜…

【认证授权FAQ】SSL/TLS证书过期导致的CLS认证失败

问题现象 问题分析 属于Agent操作系统的根认证机构过期问题,需要下载CA然后在系统安装。 DigiCert根证书和中间证书将在未来几年过期,一旦证书过期,基于证书颁发的SSL/TLS证书将不再信任,导致网站无法HTTPs访问。需要迁移到新的根…

Oracle EBS 11i R12 更改form颜色

前言 Oracle EBS 默认的form颜色为蓝色。目前大部分使用Oracle EBS的企业均已蓝色做为生产环境的颜色。在运维或者测试的过程中,必然需要多个测试环境。如:开发测试、系统测## 二级标题试等。单单靠form上的提示词进行区别,往往不适用于企业…

一文讲清前端热更新

​​​​​​ 引言 前端开发中,“保存代码后页面自动刷新”早已成为开发者的标配体验。但你是否思考过,为什么某些场景下修改代码后页面无需完全刷新,甚至能保留当前状态(如表单输入、滚动位置)?这背后的…

【一文读懂】TCP与UDP协议

TCP协议 概述 TCP(Transmission Control Protocol),即传输控制协议,是一种面向连接的、可靠的、基于字节流的传输层通信协议,常用于保证数据可靠、按顺序、无差错地传输。TCP 是互联网协议族(TCP/IP&…

maven-antrun-plugin插件的用法

maven-antrun-plugin 是 Maven 中一个非常强大的插件,它允许你在 Maven 构建过程中运行 Apache Ant 任务。通过这个插件,你可以在 Maven 构建的各个阶段(如 compile、package 等)中执行自定义的 Ant 任务,比如复制文件…

安装OpenJDK21(linux、macos)

文章目录 安装OpenJDK21java21linux下安装配置mac下安装 安装OpenJDK21 java21 封神!Java 21正式发布了,迎来了史诗级新特性,堪称版本最强!!! 视频链接:https://www.bilibili.com/video/BV1E8…