【完全解析】Spring Boot 中的常用注解有哪些?

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

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

一、Spring Boot 核心注解

@SpringBootApplication  

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

示例:

@SpringBootApplication
public class MyApplication {
    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
    }
}

@Configuration

  1. 解释:标志着一个类作为配置类,它通常用于定义 Bean。
  2. 示例:
@Configuration
public 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. 示例:
@Controller
public class MyController {
    // Controller methods here
}

@RestController  

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

@RestController
public 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。

示例:

@Component
public class MyComponent {
  // Component logic here
}

@Service

解释:

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

示例:

@Service
public class MyService {
  // Service logic here
}

@Repository

解释:

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

示例:

@Repository
public class MyRepository {
  // Repository logic here
}

@Controller

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

示例:

@Controller
public class MyController {
  // Controller logic here
}

@RestController

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

示例:

@RestController
public class MyRestController {
  @GetMapping("/hello")
  public String hello() {
      return "Hello, World!";
  }
}

@Configuration

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

示例:

@Configuration
public 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. 示例:
@Component
public 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 插件一键自动生成接口文档,多端同步,非常方便测试和维护。

知识扩展:

相关文章
|
1月前
|
缓存 安全 Java
Spring Security通用权限管理模型解析
Spring Security作为Spring生态的核心安全框架,结合RBAC与ACL权限模型,基于IoC与AOP构建灵活、可扩展的企业级权限控制体系,涵盖认证、授权流程及数据库设计、性能优化等实现策略。
139 0
|
1月前
|
缓存 安全 Java
Spring Security权限管理解析
Spring Security是Spring生态中的核心安全框架,采用认证与授权分离架构,提供高度可定制的权限管理方案。其基于过滤器链实现认证流程,通过SecurityContextHolder管理用户状态,并结合RBAC模型与动态权限决策,支持细粒度访问控制。通过扩展点如自定义投票器、注解式校验与前端标签,可灵活适配多租户、API网关等复杂场景。结合缓存优化与无状态设计,适用于高并发与前后端分离架构。
148 0
|
28天前
|
缓存 监控 Java
SpringBoot @Scheduled 注解详解
使用`@Scheduled`注解实现方法周期性执行,支持固定间隔、延迟或Cron表达式触发,基于Spring Task,适用于日志清理、数据同步等定时任务场景。需启用`@EnableScheduling`,注意线程阻塞与分布式重复问题,推荐结合`@Async`异步处理,提升任务调度效率。
400 128
|
1月前
|
人工智能 Java 开发者
【Spring】原理解析:Spring Boot 自动配置
Spring Boot通过“约定优于配置”的设计理念,自动检测项目依赖并根据这些依赖自动装配相应的Bean,从而解放开发者从繁琐的配置工作中解脱出来,专注于业务逻辑实现。
|
14天前
|
XML JSON Java
【SpringBoot(三)】从请求到响应再到视图解析与模板引擎,本文带你领悟SpringBoot请求接收全流程!
Springboot专栏第三章,从请求的接收到视图解析,再到thymeleaf模板引擎的使用! 本文带你领悟SpringBoot请求接收到渲染的使用全流程!
98 3
|
14天前
|
XML Java 应用服务中间件
【SpringBoot(一)】Spring的认知、容器功能讲解与自动装配原理的入门,带你熟悉Springboot中基本的注解使用
SpringBoot专栏开篇第一章,讲述认识SpringBoot、Bean容器功能的讲解、自动装配原理的入门,还有其他常用的Springboot注解!如果想要了解SpringBoot,那么就进来看看吧!
148 2
|
1月前
|
XML Java 数据格式
常用SpringBoot注解汇总与用法说明
这些注解的使用和组合是Spring Boot快速开发和微服务实现的基础,通过它们,可以有效地指导Spring容器进行类发现、自动装配、配置、代理和管理等核心功能。开发者应当根据项目实际需求,运用这些注解来优化代码结构和服务逻辑。
200 12
|
1月前
|
Java 数据库 数据安全/隐私保护
Spring Boot四层架构深度解析
本文详解Spring Boot四层架构(Controller-Service-DAO-Database)的核心思想与实战应用,涵盖职责划分、代码结构、依赖注入、事务管理及常见问题解决方案,助力构建高内聚、低耦合的企业级应用。
491 1
|
1月前
|
传感器 Java 数据库
探索Spring Boot的@Conditional注解的上下文配置
Spring Boot 的 `@Conditional` 注解可根据不同条件动态控制 Bean 的加载,提升应用的灵活性与可配置性。本文深入解析其用法与优势,并结合实例展示如何通过自定义条件类实现环境适配的智能配置。
113 0
探索Spring Boot的@Conditional注解的上下文配置
|
1月前
|
智能设计 Java 测试技术
Spring中最大化@Lazy注解,实现资源高效利用
本文深入探讨了 Spring 框架中的 `@Lazy` 注解,介绍了其在资源管理和性能优化中的作用。通过延迟初始化 Bean,`@Lazy` 可显著提升应用启动速度,合理利用系统资源,并增强对 Bean 生命周期的控制。文章还分析了 `@Lazy` 的工作机制、使用场景、最佳实践以及常见陷阱与解决方案,帮助开发者更高效地构建可扩展、高性能的 Spring 应用程序。
Spring中最大化@Lazy注解,实现资源高效利用

推荐镜像

更多
  • DNS