【Springboot系列】SpringBoot常用的一些注解

2024-04-10 1395阅读

温馨提示:这篇文章已超过417天没有更新,请注意相关的内容是否还可用!

【Springboot系列】SpringBoot常用的一些注解

强烈推荐

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

【Springboot系列】SpringBoot常用的一些注解


引言:

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常用的一些注解


                                    专栏集锦

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

                                    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常用的一些注解

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]