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

相关推荐
唠点键盘之外的1 小时前
29 切片的权限隔离(实战篇):Milvus + Spring AI,从 0 搭一条带权限过滤的检索链路
人工智能·spring·milvus
小蒜学长2 小时前
基于Spring Boot+Vue3的在线游戏技术指导师匹配系统的设计与实现(代码+数据库+LW)
java·数据库·spring boot·后端·在线游戏技术指导
weixin_BYSJ19873 小时前
【计算机毕设】房屋租赁系统02647
java·vue.js·spring boot·python·django·课程设计
步行cgn3 小时前
HTTP 请求协议详解
spring·mvc
VX_bysjlw9854 小时前
基于协同过滤的美食推荐系统的设计与实现32221-计算机毕设原创(免费领源码+带部署教程)
java·spring boot·redis·mysql·tomcat·maven·mybatis
专业程序开发源4 小时前
springboot校企合作双选会一站式预约与面试系统16010-计算机课程设计、毕业设计
java·vue.js·spring boot·后端·面试·php·课程设计
code_slave(码畜)5 小时前
微服务架构落地:读写分离架构 —— 主从延迟引发的“刚开单查不到”灾难与破局
spring boot·分布式·spring cloud·微服务·云原生·架构·读写分离
凤山老林6 小时前
构建多通道通知中心:模板化设计、异步削峰与可靠重试实践
spring boot·异步削峰·模板设计
captain3766 小时前
Spring IoC和DI(2)
java·后端·spring
2501_933923256 小时前
SpringCloud组件:Nacos服务注册快速入门
后端·spring·spring cloud·nacos