锋盈数科-知识库 Logo
首页
软件开发
计算机基础
Hello Halo
新手必读
关于本知识库
登录 →
锋盈数科-知识库 Logo
首页 软件开发 计算机基础 Hello Halo 新手必读 关于本知识库
登录
  1. 首页
  2. 软件开发
  3. JAVA
  4. 【Springboot系列】SpringBoot常用的一些注解

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

0
  • JAVA
  • 发布于 2024-08-06
  • 0 次阅读
黄健
黄健

本文由 简悦 SimpRead 转码, 原文地址 blog.csdn.net

强烈推荐

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

引言:

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 来构建出色的应用程序。

标签: #JAVA 991
相关文章

Spring 实现 3 种异步接口 2024-10-18 09:07

大家好,我是苏三~ 如何处理比较耗时的接口? 这题我熟,直接上异步接口,使用 Callable、WebAsyncTask 和 DeferredResult、CompletableFuture等均可实现。 但这些方法有局限性,处理结果仅返回单个值。在某些场景下,如果需要接口异步处理的同时,还持续不断地

重学SpringBoot3-集成Redis(五)之布隆过滤器 2024-10-08 11:24

更多SpringBoot3内容请关注我的专栏:《SpringBoot3》 期待您的点赞👍收藏⭐评论✍ 重学SpringBoot3-集成Redis(五)之布隆过滤器 1. 什么是布隆过滤器? * 基本概念 适用场景 2. 使用 Redis 实现布隆过滤器 * 项目依赖 Redis 配置

SpringBoot整合异步任务执行 2024-10-08 11:24

同步任务: 同步任务是在单线程中按顺序执行,每次只有一个任务在执行,不会引发线程安全和数据一致性等 并发问题 同步任务需要等待任务执行完成后才能执行下一个任务,无法同时处理多个任务,响应慢,影响用 户体验 异步任务: 异步任务是在多线程中同时执行,多个任务可以并发执行,同时处理多个请求,响应快,资源

springboot kafka多数据源,通过配置动态加载发送者和消费者 2024-10-08 11:24

前言 最近做项目,需要支持kafka多数据源,实际上我们也可以通过代码固定写死多套kafka集群逻辑,但是如果需要不修改代码扩展呢,因为kafka本身不处理额外逻辑,只是起到削峰,和数据的传递,那么就需要对架构做一定的设计了。 准备test kafka本身非常容易上手,如果我们需要单元测试,引入ja

SpringBoot 集成 Redis 2024-10-08 11:24

一:SpringBoot 集成 Redis ①Redis是一个 NoSQL(not only)数据库, 常作用缓存 Cache 使用。 ②Redis是一个中间件、是一个独立的服务器;常用的数据类型: string , hash ,set ,zset , list ③通过Redis客户端可以使用多种语

SpringBoot整合QQ邮箱 2024-10-08 11:24

SpringBoot可以通过导入依赖的方式集成多种技术,这当然少不了我们常用的邮箱,现在本章演示SpringBoot整合QQ邮箱发送邮件…. 下面按步骤进行: 1.获取QQ邮箱授权码 1.1 登录QQ邮箱 1.2 开启SMTP服务 找到下图中的SMTP服务区域,如果当前账号未开启的话自己手动开启。

目录

IT 外包服务商

  • 意见投递
  • zyf6619

软件开发应用

主菜单

  • 首页
  • 软件开发
  • 计算机基础
  • Hello Halo
  • 新手必读
  • 关于本知识库
Copyright © 2024 your company All Rights Reserved. Powered by Halo.