@RequestMapping、@GetMapping、@PostMapping

@RequestMapping

你可以使用@RequestMapping注解来将请求URL,如/appointments等,映射到整个类上或某个特定的处理器方法上。一般来说,类级别的注解负责将一个特定(或符合某种模式)的请求路径映射到一个控制器上,同时通过方法级别的注解来细化映射,即根据特定的HTTP请求方法(“GET”“POST”方法等)、HTTP请求中是否携带特定参数等条件,将请求映射到匹配的方法上。

可以在方法和类上使用 @Target({ElementType.TYPE, ElementType.METHOD})

* value() 和 path()等返回值为字符串数组 都可以同时定义多个字符串值来接收多个URL请求

@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Mapping
public @interface RequestMapping {
    String name() default "";

    @AliasFor("path")
    String[] value() default {};

    @AliasFor("value")
    String[] path() default {};

    RequestMethod[] method() default {};

    String[] params() default {};

    String[] headers() default {};

    String[] consumes() default {};

    String[] produces() default {};
}

@PostMapping

@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@RequestMapping(
    method = {RequestMethod.POST}
)
public @interface PostMapping {
    @AliasFor(
        annotation = RequestMapping.class
    )
    String name() default "";

    @AliasFor(
        annotation = RequestMapping.class
    )
    String[] value() default {};

    @AliasFor(
        annotation = RequestMapping.class
    )
    String[] path() default {};

    @AliasFor(
        annotation = RequestMapping.class
    )
    String[] params() default {};

    @AliasFor(
        annotation = RequestMapping.class
    )
    String[] headers() default {};

    @AliasFor(
        annotation = RequestMapping.class
    )
    String[] consumes() default {};

    @AliasFor(
        annotation = RequestMapping.class
    )
    String[] produces() default {};
}

等于是@RequestMapping(value = "/", method = RequestMethod.POST)的缩写

@GetMapping

@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@RequestMapping(
    method = {RequestMethod.GET}
)
public @interface GetMapping {
    @AliasFor(
        annotation = RequestMapping.class
    )
    String name() default "";

    @AliasFor(
        annotation = RequestMapping.class
    )
    String[] value() default {};

    @AliasFor(
        annotation = RequestMapping.class
    )
    String[] path() default {};

    @AliasFor(
        annotation = RequestMapping.class
    )
    String[] params() default {};

    @AliasFor(
        annotation = RequestMapping.class
    )
    String[] headers() default {};

    @AliasFor(
        annotation = RequestMapping.class
    )
    String[] consumes() default {};

    @AliasFor(
        annotation = RequestMapping.class
    )
    String[] produces() default {};
}

等于是@RequestMapping(value = "/", method = RequestMethod.GET)的缩写

controller层代码已经给出,下面给出serviceimpl层使用MyBatis查询商圈下最近三个月内销售量前十的商品的代码实现示例。 首先,在serviceimpl层中引入需要的包和注解: ```java import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; ``` 然后,注入对应的mapper接口: ```java @Service public class EsOrderServiceImpl implements EsOrderService { @Autowired private OrderMapper orderMapper; ``` 接下来,在serviceimpl层实现`getTop10Sku`方法,调用mapper接口中定义的方法来获取销售量前十的商品ID: ```java @Override public List<Long> getTop10Sku(Integer businessId) { return orderMapper.getTop10SkuByBusinessId(businessId); } ``` 最后,在mapper接口中定义`getTop10SkuByBusinessId`方法,并在对应的XML文件中实现该方法: ```java import org.apache.ibatis.annotations.Param; public interface OrderMapper { List<Long> getTop10SkuByBusinessId(@Param("businessId") Integer businessId); } ``` ```xml <select id="getTop10SkuByBusinessId" resultType="java.lang.Long"> SELECT sku_id FROM orders WHERE business_id = #{businessId} AND order_date >= DATE_SUB(CURDATE(), INTERVAL 3 MONTH) GROUP BY sku_id ORDER BY COUNT(*) DESC LIMIT 10 </select> ``` 这样,就完成了在serviceimpl层使用MyBatis求商圈下最近三个月内销售量前十的商品的代码实现。注意,根据你的具体数据库表结构和需求,可能需要适当修改SQL语句和方法名称。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值