写点什么

Spring Boot 中常见且必备的注解解析

作者:Liam
  • 2023-09-28
    广东
  • 本文字数:2363 字

    阅读完需:约 8 分钟

Spring Boot 中常见且必备的注解解析

Spring Boot 中有许多常用的注解,这些注解用于配置、管理和定义 Spring Boot 应用程序的各个方面。以下是这些注解按大类和小类的方式分类,并附有解释和示例。

一、Spring Boot 核心注解

@SpringBootApplication

解释:这是一个组合注解,通常用于主应用程序类,标志着这是 Spring Boot 应用程序的入口点。它包含了其他注解,如 @Configuration、@ComponentScan 和 @EnableAutoConfiguration。


示例:


@SpringBootApplicationpublic class MyApplication {    public static void main(String[] args) {        SpringApplication.run(MyApplication.class, args);    }}
复制代码

@Configuration

  1. 解释:标志着一个类作为配置类,它通常用于定义 Bean。

  2. 示例:


@Configurationpublic class MyConfig {    @Beanpublic MyBean myBean() {        return new MyBean();    }}
复制代码

@ComponentScan

解释:用于指定 Spring 容器扫描组件的基本包路径。


示例:


  @SpringBootApplication  @ComponentScan(basePackages = "com.example")  public class MyApplication {    public static void main(String[] args) {        SpringApplication.run(MyApplication.class, args);    }}
复制代码

二、Spring Boot Web 注解

@Controller

  1. 解释:标志着一个类是 Spring MVC 控制器,处理 HTTP 请求。

  2. 示例:


@Controllerpublic class MyController {    // Controller methods here}
复制代码

@RestController

解释:结合 @Controller 和 @ResponseBody,用于创建 RESTful 风格的控制器。  示例:


@RestControllerpublic class MyRestController {    @GetMapping("/hello")    public String hello() {        return "Hello, World!";    }}
复制代码

@RequestMapping

解释:用于映射 HTTP 请求到控制器方法,并指定 URL 路径。


示例:


@Controller@RequestMapping("/my")public class MyController {    @GetMapping("/hello")    public String hello() {        return "Hello, World!";    }}
复制代码

三、Spring Boot Bean 注解

@Component

解释:标志着一个类是 Spring 的组件,会被 Spring 扫描并注册为一个 Bean。


示例:


@Componentpublic class MyComponent {  // Component logic here}
复制代码

@Service

解释:


用于标记一个类作为业务逻辑的服务组件。


示例:


@Servicepublic class MyService {  // Service logic here}
复制代码

@Repository

解释:


用于标记一个类作为数据访问组件,通常用于持久层。


示例:


@Repositorypublic class MyRepository {  // Repository logic here}
复制代码

@Controller

解释:用于标记一个类作为 Spring MVC 控制器。


示例:


@Controllerpublic class MyController {  // Controller logic here}
复制代码

@RestController

解释:结合 @Controller 和 @ResponseBody,用于创建 RESTful 风格的控制器。


示例:


@RestControllerpublic class MyRestController {  @GetMapping("/hello")  public String hello() {      return "Hello, World!";  }}
复制代码

@Configuration

解释:标志着一个类是 Spring 的配置类,通常用于定义 Bean。


示例:


@Configurationpublic class MyConfig {  @Bean  public MyBean myBean() {      return new MyBean();  }}
复制代码


这些注解用于定义和管理 Spring Bean,是 Spring Boot 应用程序中的重要组成部分。每个注解都有不同的用途和上下文,你可以根据应用程序的需求使用适当的注解。在 Spring Boot 应用程序中,使用这些注解可以轻松创建和管理 Bean,而无需显式的 XML 配置。

四、Spring Boot 数据访问注解

@Repository

解释:标志着一个类是 Spring Data 仓库,用于数据库访问。


示例:


@Repository  public class UserRepository {    // Data access methods here}
复制代码

@Entity

解释:用于定义 JPA 实体类,映射到数据库表。


示例:


@Entity  public class User {    // Entity fields and methods here}
复制代码

五、Spring Boot 依赖注入注解

@Autowired

解释:用于自动装配 Bean,通常与构造函数、Setter 方法或字段一起使用。


示例:


  @Service  public class MyService {    private final MyRepository repository;
@Autowired public MyService(MyRepository repository) { this.repository = repository; }}
复制代码

@Qualifier

解释:与 @Autowired 一起使用,用于指定要注入的 Bean 的名称。


示例:


  @Service  public class MyService {    private final MyRepository repository;
@Autowired public MyService(@Qualifier("myRepository") MyRepository repository) { this.repository = repository; }}
复制代码

六、其他常用注解

@Value

  1. 解释:用于注入属性值,通常从配置文件中获取。

  2. 示例:


@Componentpublic class MyComponent {    @Value("${my.property}")    private String myProperty;}
复制代码

@ConfigurationProperties

解释:用于将配置属性绑定到一个 POJO 类,通常用于从配置文件中读取属性值。


示例:


  @Configuration  @ConfigurationProperties(prefix = "my")  public class MyProperties {    private String property1;    private int property2;    // Getters and setters}
复制代码


这只是 Spring Boot 中一些常用注解的分类和示例,还有许多其他注解可用于更专业的用例。根据你的需求,你可以选择使用适当的注解来配置和管理你的 Spring Boot 应用程序。

使用 Apifox 测试和管理接口

Apifox 是一个比 Postman 更强大的接口测试工具,Apifox = Postman + Swagger + Mock + JMeter, 支持调试 http(s)、WebSocket、Socket、gRPCDubbo 等协议的接口,并且集成了 IDEA 插件。在开发完接口后,可以通过 Apifox 的 IDEA 插件一键自动生成接口文档,多端同步,非常方便测试和维护。




知识扩展:


用户头像

Liam

关注

没有一个bug是无辜的! 2021-12-23 加入

一个简单的程序员!

评论

发布
暂无评论
Spring Boot 中常见且必备的注解解析_Java_Liam_InfoQ写作社区