Spring Boot 常用注解大全

以下是Spring Boot中常用的注解及其详细解释以及相应的代码示例:

  1. @SpringBootApplication: 这个注解用于标识一个Spring Boot应用的主类。它整合了 @Configuration@EnableAutoConfiguration@ComponentScan

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

  2. @RestController: 这个注解用于定义一个RESTful控制器,在Spring MVC中它表示所有的处理方法都返回一个Restful风格的数据。

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

  3. @Service: 这个注解用于标识一个类是业务逻辑层的组件。

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

  4. @Repository: 这个注解用于标识一个类是数据访问层的组件。

    @Repository
    public class UserRepository {
    // Data access logic here
    }

  5. @Component: 这个注解用于标识一个类是Spring的组件。

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

  6. @Autowired: 这个注解用于自动装配Spring Bean。

    @Service
    public class UserService {
    @Autowired
    private UserRepository userRepository;

    复制代码
     // Service logic here

    }

  7. @Qualifier: 当多个实现类满足一个接口时,可以与 @Autowired 配合使用以指定具体要注入的Bean。

    @Service
    public class UserService {
    @Autowired
    @Qualifier("userDatabaseRepository")
    private UserRepository userRepository;

    复制代码
     // Service logic here

    }

  8. @RequestMapping: 这个注解用于将HTTP请求映射到处理方法上。

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

  9. @GetMapping, @PostMapping, @PutMapping, @DeleteMapping: 这些注解用于将HTTP GET、POST、PUT、DELETE 请求映射到处理方法上。

    @RestController
    @RequestMapping("/api")
    public class MyController {
    @GetMapping("/get")
    public String get() {
    return "GET Request";
    }

    复制代码
     @PostMapping("/post")
     public String post() {
         return "POST Request";
     }
    
     @PutMapping("/put")
     public String put() {
         return "PUT Request";
     }
    
     @DeleteMapping("/delete")
     public String delete() {
         return "DELETE Request";
     }

    }

  10. @RequestParam: 这个注解用于从请求中获取参数的值。

    @GetMapping("/user")
    public String getUserById(@RequestParam Long id) {
    // logic to fetch user by id
    }

  11. @PathVariable: 这个注解用于从请求的URL中获取参数的值。

    @GetMapping("/user/{id}")
    public String getUserById(@PathVariable Long id) {
    // logic to fetch user by id
    }

  12. @ResponseBody: 这个注解用于将方法返回的对象转换为HTTP响应的主体部分。

    @GetMapping("/user")
    @ResponseBody
    public User getUser() {
    // logic to fetch user
    return user;
    }

  13. @RequestBody: 这个注解用于将HTTP请求的主体部分转换为方法参数。

    @PostMapping("/user")
    public String addUser(@RequestBody User user) {
    // logic to add user
    }

  14. @ResponseStatus: 这个注解用于指定方法返回的HTTP状态码。

    @ResponseStatus(HttpStatus.NOT_FOUND)
    public class ResourceNotFoundException extends RuntimeException {
    // Exception handling logic here
    }

  15. @ExceptionHandler: 这个注解用于定义全局异常处理方法。

    @ControllerAdvice
    public class GlobalExceptionHandler {
    @ExceptionHandler(Exception.class)
    public String handleException(Exception ex) {
    // Exception handling logic here
    return "error";
    }
    }

  16. @Configuration: 这个注解用于定义配置类,通常与 @Bean 注解一起使用。

    @Configuration
    public class AppConfig {
    @Bean
    public UserService userService() {
    return new UserService();
    }
    }

  17. @Value: 这个注解用于从配置文件中获取值。

    @Component
    public class MyComponent {
    @Value("${my.property}")
    private String myProperty;

    复制代码
     // Component logic here

    }

以上是一些常见的Spring Boot注解及其用法示例。在实际开发中,可能还会使用到其他的注解,具体根据项目需求和设计选择。

相关推荐
凤山老林9 分钟前
ORM 框架性能调优:Spring Boot 下 N+1 查询根因治理、动态 SQL 优化与 Fetch 策略实战
数据库·spring boot·sql
阿维的博客日记18 分钟前
spring里面的@RequestParam什么意思
java·后端·spring
是梦终空36 分钟前
计算机毕业设计279—基于SpringBoot+Vue3校园商户意见反馈系统(源代码+数据库+17000字论文+ppt)
数据库·spring boot·vue·毕业设计·课程设计·毕业论文·源代码
952362 小时前
RabbitMQ - 高级特性
java·spring boot·分布式·后端·rabbitmq
早春的树长在理想三旬2 小时前
从LLM到Agent:ReAct推理模式的底层原理
人工智能·spring boot·springai·agent开发
一路向北North3 小时前
Spring Security OAuth2.0(22):分布式系统授权-搭建网关
java·后端·spring
存在的五月雨3 小时前
SpringBoot后端限制重复提交
java·spring boot·后端
前鼻音太阳熊3 小时前
【MES系统】MES为什么需要SSE?从设备实时监控谈Spring Boot流式推送设计
java·spring boot·后端
尚早立志4 小时前
六)Spring Boot 源码研读之prepareContext 准备上下文
java·spring boot·后端·spring
Dovis(誓平步青云)5 小时前
《Linux CPU频率为何忽高忽低:cpufreq、idle状态与性能抖动教程》
linux·运维·服务器·spring boot·后端·生成对抗网络