@RestponseBody与@Mapper注解

 

`@ResponseBody` 和 `@Mapper` 是 Spring 框架中两个不同用途的注解,它们分别用于处理 HTTP 响应和 MyBatis 映射器接口的定义。

 

### @ResponseBody

 

`@ResponseBody` 注解用于 Spring MVC 控制器方法中,指示该方法的返回值应该直接写入 HTTP 响应体中,而不是被解析为跳转路径或视图名称。这通常用于创建 RESTful API,其中控制器方法返回 JSON 或 XML 格式的数据。

 

当方法返回一个对象时,Spring 会自动使用合适的消息转换器(如 Jackson 或 JAXB)将返回对象转换为 JSON 或 XML 格式,并设置相应的 `Content-Type` 响应头。

 

**例子**:

 

```java

@RestController

public class MyRestController {

 

    @GetMapping("/users/{id}")

    public @ResponseBody User getUser(@PathVariable Long id) {

        // ... 获取用户信息

        return user;

    }

}

```

 

在这个例子中,`getUser` 方法的返回值 `User` 对象将被转换为 JSON 格式,并作为响应体发送给客户端。

 

### @Mapper

 

`@Mapper` 注解是 MyBatis 框架中的一个注解,用于标记 MyBatis 的映射器接口(Mapper Interface)。这个注解告诉 MyBatis,接口中的方法应该与特定的 SQL 映射文件或使用注解定义的 SQL 语句相对应。

 

当使用 `@Mapper` 注解时,MyBatis 会创建接口的代理实现,并在运行时处理方法调用,将它们映射到相应的 SQL 语句。这使得开发者可以编写更加简洁的代码,而不需要手动创建和维护 SQL 映射文件。

 

**例子**:

 

```java

@Mapper

public interface UserMapper {

 

    User selectUserById(int id);

}

```

 

在这个例子中,`UserMapper` 接口被标记为 MyBatis 的映射器接口。`selectUserById` 方法预期与一个 SQL 查询相对应,该查询用于根据用户 ID 获取用户信息。

 

### 总结

 

- `@ResponseBody` 用于 Spring MVC,指示方法的返回值应该作为 HTTP 响应体直接返回。

- `@Mapper` 用于 MyBatis,标记映射器接口,以便 MyBatis 可以创建代理实现并处理 SQL 映射。

 

这两个注解在 Spring Boot 应用中经常一起使用,`@Mapper` 用于定义数据访问层接口,而 `@ResponseBody` 用于在控制器中返回响应数据。

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tin9898

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值