相关推荐recommended
【Springboot系列】SpringBoot常用的一些注解
作者:mmseoamin日期:2024-04-27

【Springboot系列】SpringBoot常用的一些注解,579a429daf314744b995f37351b46548,第1张

强烈推荐

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站:人工智能

【Springboot系列】SpringBoot常用的一些注解,b004071ozy_05_amzn,第2张


引言:

Spring Boot 是当今 Java 开发领域中最受欢迎的框架之一,它的出现极大地简化了 Spring 应用程序的开发和部署过程。

其中,注解是 Spring Boot 中非常重要的一部分,它们提供了便捷的方式来实现各种功能,从简单的请求映射到复杂的事务管理和切面编程。

本文将介绍 Spring Boot 中最常用的 17 个注解,并给出相应的详细说明和示例,帮助读者更好地理解和应用这些注解。


常用注解

Spring Boot 是一个基于 Spring 框架的开发工具,提供了一系列注解简化了 Spring 应用的开发。

以下是 Spring Boot 中最常用的注解:

@SpringBootApplication:

  • 说明:标识 Spring Boot 应用的主类,通常与 public static void main() 方法一起使用。

  • 示例:

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

    @RestController:

    • 说明:标识控制器类,表示这个类中的所有方法都返回 RESTful 风格的数据。

    • 示例:

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

      @RequestMapping:

      • 说明:映射 HTTP 请求到控制器方法,可以用于类级别和方法级别,指定 URL 路径。

      • 示例:

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

        @GetMapping/@PostMapping/@PutMapping/@DeleteMapping:

        • 说明:分别用于指定 HTTP GET/POST/PUT/DELETE 请求的处理方法。

        • 示例:

          @RestController
          @RequestMapping("/api")
          public class MyController {
              @PostMapping("/create")
              public String create() {
                  return "Resource created!";
              }
          }
          

          @RequestParam:

          • 说明:提取请求参数,映射到控制器方法的参数上。

          • 示例:

            @RestController
            @RequestMapping("/api")
            public class MyController {
                @GetMapping("/greet")
                public String greet(@RequestParam("name") String name) {
                    return "Hello, " + name + "!";
                }
            }
            

            @PathVariable:

            • 说明:提取 URL 中的路径变量,映射到控制器方法的参数上。

            • 示例:

              @RestController
              @RequestMapping("/api")
              public class MyController {
                  @GetMapping("/user/{id}")
                  public String getUser(@PathVariable("id") int id) {
                      return "User ID: " + id;
                  }
              }
              

              @Autowired:

              • 说明:自动装配 Spring 容器中的 Bean。

              • 示例:

                @Service
                public class MyService {
                    public String getMessage() {
                        return "Hello from MyService!";
                    }
                }
                @RestController
                public class MyController {
                    @Autowired
                    private MyService myService;
                    @GetMapping("/message")
                    public String getMessage() {
                        return myService.getMessage();
                    }
                }
                

                @Component/@Service/@Repository:

                • 说明:标识类为 Spring 管理的 Bean,分别用于通用组件、业务逻辑组件和数据访问组件。

                • 示例:

                  @Service
                  public class MyService {
                      public String getMessage() {
                          return "Hello from MyService!";
                      }
                  }
                  

                  @Configuration/@Bean:

                  • 说明:定义配置类和 Bean 的生成方法。

                  • 示例:

                    @Configuration
                    public class MyConfiguration {
                        @Bean
                        public MyService myService() {
                            return new MyService();
                        }
                    }
                    

                    @Value:

                    • 说明:注入配置属性值。

                    • 示例:

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

                      @Qualifier:

                      • 说明:指定注入的 Bean 名称。

                      • 示例:

                        @Service("myService")
                        public class MyService {
                            // Service implementation
                        }
                        @RestController
                        public class MyController {
                            @Autowired
                            @Qualifier("myService")
                            private MyService myService;
                        }
                        

                        @Conditional:

                        • 说明:条件注解,根据条件决定是否创建 Bean。

                        • 示例:

                          @Conditional(MyCondition.class)
                          @Bean
                          public MyBean myBean() {
                              return new MyBean();
                          }
                          

                          @EnableAutoConfiguration:

                          • 说明:启用 Spring Boot 的自动配置机制。
                          • 示例:通常在主类上使用,示例见第一个注解示例。

                            @EnableWebMvc:

                            • 说明:启用 Spring MVC。
                            • 示例:通常在主类上使用,示例见第一个注解示例。

                              @Transactional:

                              • 说明:声明事务性方法。

                              • 示例:

                                @Service
                                public class MyService {
                                    @Transactional
                                    public void performTransaction() {
                                        // Transactional operation
                                    }
                                }
                                

                                @Scheduled:

                                • 说明:定时任务。

                                • 示例:

                                  @Service
                                  public class MyScheduledService {
                                      @Scheduled(fixedRate = 5000)
                                      public void performTask() {
                                          // Scheduled task
                                      }
                                  }
                                  

                                  @Aspect:

                                  • 说明:声明切面,实现 AOP 编程。

                                  • 示例:

                                    @Aspect
                                    @Component
                                    public class MyAspect {
                                        @Before("execution(* com.example.myapp.service.*.*(..))")
                                        public void beforeServiceMethods() {
                                            // Advice
                                        }
                                    }
                                    

                                    总结:

                                    通过本文的介绍,相信读者已经对 Spring Boot 中最常用的注解有了更深入的了解。

                                    这些注解为开发者提供了丰富的功能和灵活的操作方式,使得开发 Spring Boot 应用变得更加高效和便捷。

                                    然而,除了这些注解外,Spring Boot 还有许多其他强大的特性和功能,我们鼓励读者进一步探索和学习,以更好地利用 Spring Boot 来构建出色的应用程序。


                                    强烈推荐

                                    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站:人工智能

                                    【Springboot系列】SpringBoot常用的一些注解,b004071ozy_05_amzn,第3张


                                    专栏集锦

                                    大佬们可以收藏以备不时之需:

                                    Spring Boot 专栏:http://t.csdnimg.cn/peKde

                                    ChatGPT 专栏:http://t.csdnimg.cn/cU0na

                                    Java 专栏:http://t.csdnimg.cn/YUz5e

                                    Go 专栏:http://t.csdnimg.cn/Jfryo

                                    Netty 专栏:http://t.csdnimg.cn/0Mp1H

                                    Redis 专栏:http://t.csdnimg.cn/JuTue

                                    Mysql 专栏:http://t.csdnimg.cn/p1zU9

                                    架构之路 专栏:http://t.csdnimg.cn/bXAPS


                                    写在最后

                                    感谢您的支持和鼓励! 😊🙏

                                    如果大家对相关文章感兴趣,可以关注公众号"架构殿堂",会持续更新AIGC,java基础面试题, netty, spring boot, spring cloud等系列文章,一系列干货随时送达!

                                    【Springboot系列】SpringBoot常用的一些注解,csdn-end,第4张