Java 面试题
目录

基于 Java 的 Spring Boot 的常用注解有哪些?

· 约 12 分钟读完 · 第 194 / 274 章

推荐答案

常用注解列表

  1. @SpringBootApplication

    • 用于标记主类,表示这是一个Spring Boot应用。它组合了@Configuration、@EnableAutoConfiguration和@ComponentScan三个注解。
  2. @RestController

    • 用于标记一个类为控制器,并且所有方法的返回值都会直接作为HTTP响应体返回。
  3. @RequestMapping

    • 用于映射HTTP请求到控制器方法。可以指定URL路径、HTTP方法等。
  4. @GetMapping

    • 用于映射GET请求到控制器方法。
  5. @PostMapping

    • 用于映射POST请求到控制器方法。
  6. @PutMapping

    • 用于映射PUT请求到控制器方法。
  7. @DeleteMapping

    • 用于映射DELETE请求到控制器方法。
  8. @PathVariable

    • 用于将URL中的模板变量绑定到方法参数。
  9. @RequestParam

    • 用于将HTTP请求参数绑定到方法参数。
  10. @RequestBody

    • 用于将HTTP请求体绑定到方法参数,通常用于处理JSON或XML格式的请求。
  11. @ResponseBody

    • 用于将方法的返回值直接作为HTTP响应体返回。
  12. @Configuration

    • 用于标记一个类为配置类,通常与@Bean注解一起使用。
  13. @Bean

    • 用于标记一个方法,表示该方法返回的对象应该被Spring容器管理。
  14. @Component

    • 用于标记一个类为Spring组件,Spring会自动扫描并管理这些组件。
  15. @Service

    • 用于标记一个类为服务层组件。
  16. @Repository

    • 用于标记一个类为数据访问层组件。
  17. @Autowired

    • 用于自动注入依赖。
  18. @Qualifier

    • 用于指定要注入的Bean的名称,通常与@Autowired一起使用。
  19. @Value

    • 用于注入配置文件中的属性值。
  20. @ConfigurationProperties

    • 用于将配置文件中的属性绑定到一个Java对象。
  21. @EnableAutoConfiguration

    • 用于启用Spring Boot的自动配置机制。
  22. @ComponentScan

    • 用于指定Spring扫描组件的包路径。
  23. @EnableCaching

    • 用于启用Spring的缓存机制。
  24. @Cacheable

    • 用于标记一个方法的返回值应该被缓存。
  25. @CacheEvict

    • 用于标记一个方法应该清除缓存。
  26. @Scheduled

    • 用于标记一个方法为定时任务。
  27. @Async

    • 用于标记一个方法为异步执行。
  28. @Transactional

    • 用于标记一个方法或类为事务性操作。
  29. @ExceptionHandler

    • 用于处理控制器中的异常。
  30. @ControllerAdvice

    • 用于全局处理控制器中的异常。

本题详细解读

1. @SpringBootApplication

@SpringBootApplication是Spring Boot应用的核心注解,通常用于主类上。它组合了@Configuration、@EnableAutoConfiguration和@ComponentScan三个注解,简化了配置。

2. @RestController

@RestController是@Controller和@ResponseBody的组合注解,用于标记一个类为控制器,并且所有方法的返回值都会直接作为HTTP响应体返回。

3. @RequestMapping

@RequestMapping用于映射HTTP请求到控制器方法。它可以指定URL路径、HTTP方法等。例如:

4. @GetMapping, @PostMapping, @PutMapping, @DeleteMapping

这些注解是@RequestMapping的简化版本,分别用于映射GET、POST、PUT、DELETE请求。例如:

5. @PathVariable

@PathVariable用于将URL中的模板变量绑定到方法参数。例如:

6. @RequestParam

@RequestParam用于将HTTP请求参数绑定到方法参数。例如:

7. @RequestBody

@RequestBody用于将HTTP请求体绑定到方法参数,通常用于处理JSON或XML格式的请求。例如:

8. @ResponseBody

@ResponseBody用于将方法的返回值直接作为HTTP响应体返回。例如:

9. @Configuration

@Configuration用于标记一个类为配置类,通常与@Bean注解一起使用。例如:

10. @Bean

@Bean用于标记一个方法,表示该方法返回的对象应该被Spring容器管理。例如:

11. @Component

@Component用于标记一个类为Spring组件,Spring会自动扫描并管理这些组件。例如:

12. @Service

@Service用于标记一个类为服务层组件。例如:

13. @Repository

@Repository用于标记一个类为数据访问层组件。例如:

14. @Autowired

@Autowired用于自动注入依赖。例如:

15. @Qualifier

@Qualifier用于指定要注入的Bean的名称,通常与@Autowired一起使用。例如:

16. @Value

@Value用于注入配置文件中的属性值。例如:

17. @ConfigurationProperties

@ConfigurationProperties用于将配置文件中的属性绑定到一个Java对象。例如:

18. @EnableAutoConfiguration

@EnableAutoConfiguration用于启用Spring Boot的自动配置机制。例如:

19. @ComponentScan

@ComponentScan用于指定Spring扫描组件的包路径。例如:

20. @EnableCaching

@EnableCaching用于启用Spring的缓存机制。例如:

21. @Cacheable

@Cacheable用于标记一个方法的返回值应该被缓存。例如:

22. @CacheEvict

@CacheEvict用于标记一个方法应该清除缓存。例如:

23. @Scheduled

@Scheduled用于标记一个方法为定时任务。例如:

24. @Async

@Async用于标记一个方法为异步执行。例如:

25. @Transactional

@Transactional用于标记一个方法或类为事务性操作。例如:

26. @ExceptionHandler

@ExceptionHandler用于处理控制器中的异常。例如:

27. @ControllerAdvice

@ControllerAdvice用于全局处理控制器中的异常。例如: