SpringBoot根据目录结构自动生成路由前缀的实现代码

本文介绍如何根据目录结构给RequestMapping添加路由前缀,具体实现方法,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧

SpringBoot根据目录结构自动生成路由前缀的实现代码,久久派带你了解更多相关信息。

目录
  • 前言
  • 具体实现
    • 配置文件指定基础包
    • 自动补全路由前缀处理类
    • 自动补全路由前缀配置类
    • 测试类
  • 测试

    前言

    本文介绍如何根据目录结构给RequestMapping添加路由前缀(覆盖RequestMappingHandlerMapping中的getMappingForMethod方法,修改其中的Url),如下图的实际访问路径为:/v1/test/test。

    SpringBoot根据目录结构自动生成路由前缀的实现代码

    具体实现

    配置文件指定基础包

    application.properties

    api-package = com.coisini.springbootlearn.controller

    自动补全路由前缀处理类

    AutoPrefixUrlMapping.java

    import org.springframework.beans.factory.annotation.Value;import org.springframework.web.servlet.mvc.method.RequestMappingInfo;import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping;import java.lang.reflect.Method;import java.util.Objects;/** * @Description 自动补全路由前缀处理类 *      RequestMappingHandlerMapping 负责处理标注了@RequestMapping的控制器 * @author coisini * @date Aug 10, 2021 * @Version 1.0 */public class AutoPrefixUrlMapping extends RequestMappingHandlerMapping {    /**     * 读取基础包配置     */    @Value(\"${api-package}\")    private String bathApiPackagePath;    /**     * 重写方法路由获取     * @param method     * @param handlerType     * @return     */    @Override    protected RequestMappingInfo getMappingForMethod(Method method, Class<?> handlerType) {        RequestMappingInfo mappingInfo = super.getMappingForMethod(method, handlerType);        if (Objects.nonNull(mappingInfo)) {            String prefix = this.getPrefix(handlerType);            /**             * RequestMappingInfo.paths(prefix).build() 根据前缀生成mappingInfo             * combine(mappingInfo) 拼接原来的mappingInfo             */            return RequestMappingInfo.paths(prefix).build().combine(mappingInfo);        }        return mappingInfo;    }    /**     * 获取方法路由前缀     * @param handleType     * @return     */    private String getPrefix(Class<?> handleType) {        String packageName = handleType.getPackage().getName();        String dotPath = packageName.replace(this.bathApiPackagePath, \"\").replace(\".\",\"/\");        return dotPath;    }}

    自动补全路由前缀配置类

    AutoPrefixConfiguration.java

    /** * @Description 自动补全路由前缀配置类 * 通过接口的形式主动发现 * @author coisini * @date Aug 10, 2021 * @Version 1.0 */@Componentpublic class AutoPrefixConfiguration implements WebMvcRegistrations {    @Override    public RequestMappingHandlerMapping getRequestMappingHandlerMapping() {        return new AutoPrefixUrlMapping();    }}

    测试类

    @RestController@RequestMapping(\"/test\")public class TestController {    @GetMapping(value = \"/test\")    public String test(){        return \"hello\";    }}

    测试

    目录结构如下

    SpringBoot根据目录结构自动生成路由前缀的实现代码

    访问结果

    SpringBoot根据目录结构自动生成路由前缀的实现代码

    目录结构变更

    SpringBoot根据目录结构自动生成路由前缀的实现代码

    访问结果

    SpringBoot根据目录结构自动生成路由前缀的实现代码

    到此这篇关于SpringBoot – 根据目录结构自动生成路由前缀的文章就介绍到这了,更多相关SpringBoot目录结构路由前缀内容请搜索趣讯吧以前的文章或继续浏览下面的相关文章希望大家以后多多支持趣讯吧!

    版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/11864.html

    (0)
    nan
    上一篇 2021-08-11
    下一篇 2021-08-11

    相关推荐

    • 形容风景特别美的词语(形容山水的词语)

      作者:王维朝代:唐代言入黄花川,每逐清溪水。随山将万转,趣途无百里。声喧乱石中,色静深松里。漾漾泛菱荇,澄澄映葭苇。我心素已闲,清川澹如此。请留盘石上,垂钓将已矣。汉译我每次进入黄花川,都要沿着青溪溪水而行。水随着山势千回万转,但走

      2021-09-24
      0
    • 京东白条怎么关闭注销(怎样关闭京东白条)

      京东白条是京东授予我们的一种可以先消费后付款的金融产品,而且京东会根据我们平时的购物情况给予不同的白条额度以及还款账期,跟支付宝的花呗差不多性质,开通后能否关毕,下面就跟小编一起了解下吧。首先关闭京东白条的方式可以分为两种情况,一种是锁定

      2021-12-08
      0
    • 小米1s青春版参数配置(小米1s配置参数)

      2010年3月3日,小米公司正式成立,2011年10月,第一款小米手机横空出世,小米开始了智能手机市场的征途。如今的小米已经是全球出货量第三的智能手机厂商,小米的十一年可能陪伴了很多人的青春,你还记得

      2022-01-19
      0
    • 苏翊鸣夺单板滑雪男子大跳台金牌,单板滑雪男子大跳台金牌是苏翊鸣-

      2022年北京冬奥会十五日进行单板滑雪男子大跳台决赛,参加这一场比赛的是运动员苏翊鸣,这次决赛苏翊鸣获得单板滑雪男子大跳台金牌,具体赛况如何?在这之前苏翊鸣曾说想要获得金牌送给自己做成年礼物,现在苏翊

      2022-02-15
      0
    • 电脑屏幕变窄了调分辨率没用(屏幕分辨率调不了)

      屏幕分辨率调不了(电脑屏幕变窄了调分辨率没用)1.以Windows8为例,首先在系统中找到“计算机”图标2.然后选择“计算机”并单击鼠标右键,然后单击“管理”选项3.接下来,在计算机管理界面的左窗格中选择“设备管理器”选项4.然后在右百思特网窗格

      2021-10-02 用户投稿
      0
    • 快手小店卖一单扣多少钱(开通快手小黄车需要多少钱)

      快手小店卖一单扣多少钱(开通快手小黄车需要多少钱)。久久派带你了解更多相关信息。快手小店通推出已经也有挺长时间了,很多客户都在咨询快手小店通的收费是怎么样的,怎么个收费模式,下面就一起来看看快手小店通是怎么收费的?价格是多少?一、快手小店通定向快手小店通

      2022-01-17
      0

    发表回复

    登录后才能评论