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

相关推荐
ponnylv1 小时前
深入剖析Spring Boot启动流程
java·开发语言·spring boot·spring
沙白猿1 小时前
【 苍穹外卖 | Day2】
spring
cyforkk2 小时前
Spring Boot @RestController 注解详解
java·spring boot·后端
叫我阿柒啊3 小时前
从Java全栈到前端框架:一次真实面试的深度复盘
java·spring boot·typescript·vue·database·testing·microservices
爱吃烤鸡翅的酸菜鱼5 小时前
【Spring】原理:Bean的作用域与生命周期
后端·spring
愿你天黑有灯下雨有伞6 小时前
一种基于注解与AOP的Spring Boot接口限流防刷方案
java·spring boot·后端
掘根6 小时前
【CMake】缓存变量
java·后端·spring
知识浅谈7 小时前
Redis哨兵模式在Spring Boot项目中的使用与实践
spring boot·redis·bootstrap
lozhyf7 小时前
能发弹幕的简单视频网站
java·spring boot·后端
雾里华8 小时前
Spring AOP深度解析:从实现原理到最佳实践
spring