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

相关推荐
ChinaRainbowSea5 分钟前
补充:问题:CORS ,前后端访问跨域问题
java·spring boot·后端·spring
hqxstudying2 小时前
java依赖注入方法
java·spring·log4j·ioc·依赖
春生野草3 小时前
关于SpringMVC的整理
spring
Bug退退退1233 小时前
RabbitMQ 高级特性之重试机制
java·分布式·spring·rabbitmq
全栈凯哥3 小时前
02.SpringBoot常用Utils工具类详解
java·spring boot·后端
hello早上好4 小时前
CGLIB代理核心原理
java·spring
RainbowSea6 小时前
跨域问题(Allow CORS)解决(3 种方法)
java·spring boot·后端
RainbowSea6 小时前
问题 1:MyBatis-plus-3.5.9 的分页功能修复
java·spring boot·mybatis
sniper_fandc8 小时前
SpringBoot系列—入门
java·spring boot·后端
先睡10 小时前
Redis的缓存击穿和缓存雪崩
redis·spring·缓存