Spring Boot常用注解详细说明

这篇具有很好参考价值的文章主要介绍了Spring Boot常用注解详细说明。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Spring Boot是一个用于构建独立的、基于Spring框架的Java应用程序的开发框架。它提供了许多注解,用于简化开发过程并提供特定功能。下面是一些常用的Spring Boot注解,按照功能进行分类说明:

1. 控制器(Controller)注解:

  • @RestController:将类标记为RESTful风格的控制器,自动将返回值转换为JSON响应。
  • @Controller:将类标记为基于MVC的控制器。

示例:

@RestController
public class UserController {
    @GetMapping("/users")
    public List<User> getUsers() {
        // 返回用户列表
    }
}

2. 路由(Routing)注解:

  • @RequestMapping:映射HTTP请求到方法或控制器类,指定处理请求的URL路径、HTTP方法、媒体类型等。
  • @GetMapping:映射HTTP GET请求到方法。
  • @PostMapping:映射HTTP POST请求到方法。
  • @PutMapping:映射HTTP PUT请求到方法。
  • @DeleteMapping:映射HTTP DELETE请求到方法。
  • @PatchMapping:映射HTTP PATCH请求到方法。

示例:

@RestController
@RequestMapping("/users")
public class UserController {
    @GetMapping("/{id}")
    public User getUser(@PathVariable("id") Long id) {
        // 根据ID获取用户
    }

    @PostMapping
    public User createUser(@RequestBody User user) {
        // 创建新用户
    }

    @DeleteMapping("/{id}")
    public void deleteUser(@PathVariable("id") Long id) {
        // 删除用户
    }
}

3. 数据访问(Data Access)注解:

  • @Entity:将类标记为JPA实体。
  • @Repository:将类标记为数据访问组件。
  • @Transactional:指定事务的边界。

示例:

@Entity
public class User {
    // 实体类定义
}

@Repository
public interface UserRepository extends JpaRepository<User, Long> {
    // 数据访问方法定义
}

4. 依赖注入(Dependency Injection)注解:

  • @Autowired:自动装配Bean依赖。
  • @Qualifier:指定注入的Bean的名称。
  • @Value:注入配置属性值。

示例:

@Service
public class UserService {
    private final UserRepository userRepository;

    @Autowired
    public UserService(UserRepository userRepository) {
        this.userRepository = userRepository;
    }

    // 其他方法
    @Value("${spring.datasource.username}")
 	private String databaseSchema;

}

5. 配置(Configuration)注解:

  • @Configuration:将类标记为配置类。
  • @ComponentScan:指定要扫描的组件包。
  • @PropertySource:指定属性文件的位置。

示例:

@Configuration
@ComponentScan("com.example")
@PropertySource("classpath:config.properties")
public class AppConfig {
// 配置类定义
}
config.properties")
public class AppConfig {
    // 配置类定义
}

6. AOP(Aspect-Oriented Programming)注解:

  • @Aspect:将类标记为切面。
  • @Before:在方法执行前执行通知。
  • @After:在方法执行后执行通知。
  • @Around:在方法执行前后执行通知。

示例:

@Aspect
@Component
public class LoggingAspect {
    @Before("execution(public * com.example.service.*.*(..))")
    public void beforeMethodExecution(JoinPoint joinPoint) {
        // 在方法执行前执行日志记录
    }

    @After("execution(public * com.example.service.*.*(..))")
    public void afterMethodExecution(JoinPoint joinPoint) {
        // 在方法执行后执行日志记录
    }
}

7. 异步处理(Asynchronous Processing)注解:

  • @Async:将方法标记为异步执行,可以在方法上直接使用,也可以应用在类级别的方法上,作用于整个类的所有方法。

示例:

@Service
public class EmailService {
    @Async
    public CompletableFuture<Void> sendEmail(String recipient, String message) {
        // 异步发送邮件
    }
}

8. 定时任务(Scheduled Tasks)注解:

  • @Scheduled:将方法标记为定时任务,用于定期执行方法。

示例:

@Component
public class ScheduledTasks {
    @Scheduled(fixedRate = 5000)
    public void performTask() {
        // 定时执行任务
    }
}

9. 条件装配(Conditional Configuration)注解:

  • @ConditionalOnProperty:根据配置属性的值决定是否加载Bean或配置类。
  • @ConditionalOnClass:根据类的存在与否决定是否加载Bean或配置类。
  • @ConditionalOnBean:根据Bean的存在与否决定是否加载Bean或配置类。

示例:

@Configuration
@ConditionalOnProperty(name = "myapp.feature.enabled", havingValue = "true")
public class MyFeatureConfiguration {
    // 根据配置属性决定是否加载配置类
}

10. 异常处理(Exception Handling)注解:

- `@ControllerAdvice`:定义全局异常处理器。
- `@ExceptionHandler`:定义异常处理方法。

示例:文章来源地址https://www.toymoban.com/news/detail-437524.html

@ControllerAdvice
 public class GlobalExceptionHandler {
     @ExceptionHandler(RuntimeException.class)
     public ResponseEntity<String> handleRuntimeException(RuntimeException ex) {
         // 处理运行时异常
     }
 }

到了这里,关于Spring Boot常用注解详细说明的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 在 Spring MVC 中,用于接收前端传递的参数的注解常用的有以下几种

    目录 1、对于json请求体参数, 2、对于路径传参 3、对于query传参 4、对于form-data参数, 总结:   1、对于json请求体参数, 请求头的Content-Type应为application/json。在前端,可以使用 data格式 传参。在后端,可以使用 @RequestBody 注解来接收参数。   2、对于路径传参 (例如:test/

    2024年01月23日
    浏览(31)
  • Spring Boot中最常用注解的使用方式(下篇)

    摘要:本文是《深入解析Spring Boot中最常用注解的使用方式》的下篇内容,将继续介绍Spring Boot中其他常用的注解的使用方式,并通过代码示例进行说明,帮助读者更好地理解和运用Spring Boot框架。 1.@Autowired @Autowired :自动装配依赖对象。示例代码如下: 2. @Configuration @Config

    2024年02月07日
    浏览(26)
  • Spring Boot中最常用注解的使用方式(上篇)

    摘要:本文将详细介绍Spring Boot中最常用的注解的使用方式,并通过代码示例加以说明。通过学习这些注解,读者将能够更好地理解和运用Spring Boot框架,构建高效的企业级应用。 1.@RequestMapping @RequestMapping :将一个HTTP请求映射到对应的控制器方法上。可以用于类和方法级别。

    2024年02月07日
    浏览(33)
  • springboot 集成 Swagger2 配置以及常用注解的说明和使用 ( 超详细)

    一、注解的使用 和 说明 结构化说明如下: @Api:用在请求的类上,表示对类的说明      tags=\\\"说明该类的作用,可以在UI界面上看到的注解\\\"    (也就是给类取别名)     value=\\\"该参数没什么意义,在UI界面上也看到,所以不需要配置\\\"    @ApiOperation:用在请求的方法上,说

    2024年02月03日
    浏览(32)
  • Spring Boot入门(23):基于AOP实现自定义注解拦截接口日志并保存入库 | 超级详细,建议收藏

            在上两期中,我们着重介绍了如何集成使用 Logback 与 log4j2 日志框架的使用,今天我们讲解的主题依旧跟日志有关,不过不是使用何种开源框架,而是自己动手造。         Spring的核心之一AOP;AOP翻译过来叫面向切面编程, 核心就是这个切面. 切面表示从业务逻辑中

    2024年02月11日
    浏览(34)
  • Spring Boot进阶(48):SpringBoot之集成WebSocket及使用说明 | 超级详细,建议收藏

            WebSocket是一种新型的通信协议,它可以在客户端与服务器端之间实现双向通信,具有低延迟、高效性等特点,适用于实时通信场景。在SpringBoot应用中,集成WebSocket可以方便地实现实时通信功能,如即时聊天、实时数据传输等。         本文将介绍如何在Sprin

    2024年02月16日
    浏览(34)
  • Docker 部署spring-boot项目(超详细 包括Docker详解、Docker常用指令整理等)

    大家好!我是夏小花,今天是 2023年10月29日|农历九月十五 ,转眼间,马上进入到十一月份,最近这段时间一直在项目上没有更新文章,话不多说,今天这篇博文主要是 简单了解一下docker、dockerfile的使用、docker部署spring-boot项目以及一些docker常用的指令 ,本篇文章中如果有不

    2024年02月08日
    浏览(28)
  • Solon2 常用注解之 @ProxyComponent 用法说明

    在 Solon 提倡“克制”的原则下,托管组件分为: 普通组件 代理组件(即 @ProxyComponent 注解的类)。代理的细节可以看下《动态代理的本质》 。 之所以需要代理,是为了能拦截函数;之所以需要拦截函数,是为了让函数上的注解生效。也算是 AOP 的基础。 (如果没有拦截需求

    2023年04月19日
    浏览(28)
  • Springboot @Validated注解详细说明

    在Spring Boot中,@Validated注解用于验证请求参数。它可以应用在Controller类或方法上 1、引入依赖 2、参数说明与使用示例 注解 验证的数据类型 描述 @NotNull 任意类型 验证属性不能为null @NotBlank 字符串 验证字符串属性不能为空且长度必须大于0 @Size(min,max ) CharSequence Collection Map

    2024年02月14日
    浏览(29)
  • SpringMVC中@RequestMapping注解的详细说明

    @RequestMapping 是Spring MVC中一个用于映射HTTP请求和控制器方法之间关系的注解。它用于定义控制器方法如何响应特定的HTTP请求,包括GET、POST、PUT、DELETE等。以下是 @RequestMapping 注解的详细说明: 基本用法: @RequestMapping 用于注解一个控制器方法,指定该方法应该处理的请求路径

    2024年02月07日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包