当前位置:   article > 正文

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

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

579a429daf314744b995f37351b46548

强烈推荐

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

b004071ozy_05_amzn


引言:

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);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

@RestController:

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

  • 示例:

    @RestController
    @RequestMapping("/api")
    public class MyController {
        @GetMapping("/hello")
        public String hello() {
            return "Hello, world!";
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

@RequestMapping:

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

  • 示例:

    @RestController
    @RequestMapping("/api")
    public class MyController {
        @GetMapping("/hello")
        public String hello() {
            return "Hello, world!";
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

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

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

  • 示例:

    @RestController
    @RequestMapping("/api")
    public class MyController {
        @PostMapping("/create")
        public String create() {
            return "Resource created!";
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

@RequestParam:

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

  • 示例:

    @RestController
    @RequestMapping("/api")
    public class MyController {
        @GetMapping("/greet")
        public String greet(@RequestParam("name") String name) {
            return "Hello, " + name + "!";
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

@PathVariable:

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

  • 示例:

    @RestController
    @RequestMapping("/api")
    public class MyController {
        @GetMapping("/user/{id}")
        public String getUser(@PathVariable("id") int id) {
            return "User ID: " + id;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

@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();
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

@Component/@Service/@Repository:

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

  • 示例:

    @Service
    public class MyService {
        public String getMessage() {
            return "Hello from MyService!";
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

@Configuration/@Bean:

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

  • 示例:

    @Configuration
    public class MyConfiguration {
        @Bean
        public MyService myService() {
            return new MyService();
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

@Value:

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

  • 示例:

    @Component
    public class MyComponent {
        @Value("${my.property}")
        private String myProperty;
    
        public String getMyProperty() {
            return myProperty;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

@Qualifier:

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

  • 示例:

    @Service("myService")
    public class MyService {
        // Service implementation
    }
    
    @RestController
    public class MyController {
        @Autowired
        @Qualifier("myService")
        private MyService myService;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

@Conditional:

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

  • 示例:

    @Conditional(MyCondition.class)
    @Bean
    public MyBean myBean() {
        return new MyBean();
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

@EnableAutoConfiguration:

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

@EnableWebMvc:

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

@Transactional:

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

  • 示例:

    @Service
    public class MyService {
        @Transactional
        public void performTransaction() {
            // Transactional operation
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

@Scheduled:

  • 说明:定时任务。

  • 示例:

    @Service
    public class MyScheduledService {
        @Scheduled(fixedRate = 5000)
        public void performTask() {
            // Scheduled task
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

@Aspect:

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

  • 示例:

    @Aspect
    @Component
    public class MyAspect {
        @Before("execution(* com.example.myapp.service.*.*(..))")
        public void beforeServiceMethods() {
            // Advice
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

总结:

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

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

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


强烈推荐

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

b004071ozy_05_amzn


专栏集锦

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

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


写在最后

感谢您的支持和鼓励!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/404655
推荐阅读
相关标签