news 2026/2/24 6:04:30

Spring Boot/Spring MVC核心注解深度解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Spring Boot/Spring MVC核心注解深度解析

@Controller 与 @RestController

@Controller用于标记类为Spring MVC控制器,处理HTTP请求并返回视图名称。方法返回值通常配合视图解析器使用,如返回"home"对应home.html。@RestController是@Controller与@ResponseBody的组合,直接返回JSON/XML数据而非视图,适用于RESTful API开发。

@RequestMapping 与衍生注解

@RequestMapping是通用请求映射注解,支持指定路径、方法类型(GET/POST等)、consumes/produces条件。衍生注解包括:

  • @GetMapping:简化GET请求映射
  • @PostMapping:简化POST请求映射
  • @PutMapping:简化PUT请求映射
  • @DeleteMapping:简化DELETE请求映射
  • @PatchMapping:简化PATCH请求映射

示例代码:

@RestController @RequestMapping("/api/users") public class UserController { @GetMapping("/{id}") public User getUser(@PathVariable Long id) { return userService.findById(id); } }

@PathVariable 与 @RequestParam

@PathVariable用于从URI模板中提取变量值,如/users/{id}中的id。@RequestParam用于获取查询参数,支持默认值设置和必填校验:

@GetMapping("/search") public List<User> searchUsers( @RequestParam(required = false, defaultValue = "") String name, @PathVariable String department) { // ... }

@RequestBody 与 @ResponseBody

@RequestBody将HTTP请求体反序列化为Java对象,通常用于POST/PUT请求的JSON/XML数据绑定。@ResponseBody将方法返回值序列化为响应体,在@RestController中默认启用。

@Valid 与校验注解

@Valid触发JSR-380 Bean Validation校验,常与校验注解配合使用:

  • @NotNull:非空校验
  • @Size:字符串/集合长度校验
  • @Email:邮箱格式校验
  • @Pattern:正则校验
@PostMapping public ResponseEntity<User> createUser(@Valid @RequestBody User user) { return ResponseEntity.ok(userService.save(user)); }

@ControllerAdvice 与 @ExceptionHandler

@ControllerAdvice定义全局异常处理类,结合@ExceptionHandler捕获特定异常:

@ControllerAdvice public class GlobalExceptionHandler { @ExceptionHandler(ResourceNotFoundException.class) public ResponseEntity<ErrorResponse> handleNotFound(ResourceNotFoundException ex) { return ResponseEntity.status(HttpStatus.NOT_FOUND).body(new ErrorResponse(ex.getMessage())); } }

@Transactional 事务管理

@Transactional声明式事务管理注解,可配置隔离级别、传播行为、超时等属性。Spring Boot默认对RuntimeException回滚:

@Service public class OrderService { @Transactional(isolation = Isolation.READ_COMMITTED, propagation = Propagation.REQUIRED) public Order createOrder(Order order) { return orderRepository.save(order); } }

@Configuration 与 @Bean

@Configuration标记配置类,@Bean声明Spring容器管理的Bean。常用于第三方库集成:

@Configuration public class AppConfig { @Bean public RestTemplate restTemplate() { return new RestTemplateBuilder().build(); } }

@Autowired 与依赖注入

@Autowired自动装配依赖,支持构造函数注入、字段注入、Setter方法注入。Spring推荐使用构造函数注入:

@Service public class UserService { private final UserRepository userRepository; @Autowired public UserService(UserRepository userRepository) { this.userRepository = userRepository; } }

@Profile 环境配置

@Profile根据激活的profile条件化注册Bean,适用于多环境配置:

@Configuration @Profile("dev") public class DevConfig { @Bean public DataSource devDataSource() { return new EmbeddedDatabaseBuilder().setType(H2).build(); } }

@Scheduled 定时任务

@Scheduled配置定时任务执行周期,支持cron表达式、固定延迟等模式:

@Service public class ReportService { @Scheduled(cron = "0 0 9 * * ?") public void generateDailyReport() { // 每天9点执行 } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/12 2:21:44

事关收入!拿到PMP®证书后,这几件事别忘了做!

&#x1f4a5;注意&#xff01;11月PMP考试成绩已经公布&#xff0c;还没查成绩的小伙伴们抓紧时间查。顺利通过考试的&#xff0c;可以直接在官网上下载电子证书&#xff0c;纸质版证书一般是在6-8个月之后&#xff0c;由官方发布领取公告才能申请邮寄到家。PMP电子证书和纸质…

作者头像 李华
网站建设 2026/2/22 20:02:58

多智能体系统在电商场景中的优势

多智能体系统在电商场景中的优势 关键词:多智能体系统、电商、智能推荐、分布式决策、协同学习、个性化服务、系统架构 摘要:本文深入探讨多智能体系统(MAS)在电商领域的应用优势。我们将从MAS的基本原理出发,分析其在电商场景中的独特价值,包括分布式决策、个性化推荐、库…

作者头像 李华
网站建设 2026/2/19 11:54:07

基于ssm的健康咨询管理系统a86d3029(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。

系统程序文件列表 开题报告内容 基于SSM的健康咨询管理系统开题报告 一、研究背景与意义 1.1 研究背景 随着社会节奏的加快和生活压力的增大&#xff0c;心理健康问题日益凸显&#xff0c;成为影响个人幸福和社会和谐稳定的重要因素。传统的心理健康咨询模式往往依赖于线下…

作者头像 李华
网站建设 2026/2/8 10:49:11

深度学习毕设项目推荐-基于python-CNN卷积神经网络对鸡和兔识别

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/2/23 14:40:16

公众号图片圆角与阴影样式配置实战(以135编辑器为例)

摘要&#xff1a;本文聚焦公众号图片圆角&#xff08;border-radius&#xff09;与阴影&#xff08;box-shadow&#xff09;样式配置的核心需求&#xff0c;以135编辑器为实操案例&#xff0c;从操作步骤、参数解析到避坑指南&#xff0c;全流程拆解可视化样式配置的实现逻辑。…

作者头像 李华
网站建设 2026/2/17 11:56:04

AGV 无人叉车在物流搬运中的核心优势

在物流成本上升、安全要求趋严的背景下&#xff0c;无人叉车已成为内部物流自动化的核心装备&#xff0c;正彻底改变传统仓储和物料搬运的运作模式。 AiTEN海豚之星作为全球领先的无人叉车与内部物流自动化解决方案提供商&#xff0c;依托全产品矩阵、自研核心技术与成熟交付能…

作者头像 李华