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注解及其用法示例。在实际开发中,可能还会使用到其他的注解,具体根据项目需求和设计选择。

相关推荐
晚风_END8 小时前
Linux|操作系统|最新版openzfs编译记录
linux·运维·服务器·数据库·spring·中间件·个人开发
FYKJ_20109 小时前
springboot校园兼职平台--附源码02041
java·javascript·spring boot·python·eclipse·django·php
hERS EOUS11 小时前
SpringBoot 使用 spring.profiles.active 来区分不同环境配置
spring boot·后端·spring
超梦dasgg12 小时前
智慧充电系统设备管理服务对外接口实现方案
java·spring·微服务
xiaoye370812 小时前
Spring 事务传播机制 + 隔离级别
java·后端·spring
xuhaoyu_cpp_java13 小时前
Spring学习(一)
java·经验分享·笔记·学习·spring
kybs199114 小时前
springboot视频推荐系统--附源码72953
java·spring boot·python·eclipse·asp.net·php·idea
苍煜16 小时前
SpringBoot AOP切面编程精讲:实现方式、Spring区别及与自定义注解生产实战
java·spring boot·spring
常利兵17 小时前
Spring Boot:别再重复造轮子,这些内置功能香麻了
java·spring boot·后端
shaoming377618 小时前
检查系统硬件配置是否满足PyCharm最低要求
android·spring boot·mysql