java对外服务前缀修改_java api设置统一前缀

本文介绍了如何在Java中通过自定义`AutoPrefixUrlMapping`类和`AutoPrefixConfiguration`配置,结合`application.yml`设置,实现对外服务接口的统一前缀。示例中展示了在`DemoController`中,请求地址`/demo/a`实际被映射到`/api/demo/a`,实现了 `/api` 的自动添加。
摘要由CSDN通过智能技术生成

AutoPrefixUrlMapping.java

public class AutoPrefixUrlMapping extends RequestMappingHandlerMapping {

@Value("${api-package}")

private String apiPackagePath;

@Override

protected RequestMappingInfo getMappingForMethod(Method method, Class> handlerType) {

RequestMappingInfo mappingInfo = super.getMappingForMethod(method, handlerType);

if(mappingInfo != null){

String prefix = this.getPrefix(handlerType);

return RequestMappingInfo.paths(prefix).build().combine(mappingInfo);

}

return mappingInfo;

}

private String getPrefix(Class> handlerType){

String packageName = handlerType.getPackage().getName();

String dotPath = packageName.replaceAll(this.apiPackagePath,"");

return dotPath.replace(".", "/");

}

}

AutoPrefixConfiguration.java

@Configuration

public class AutoPrefixConfiguration implements WebMvcRegistrations {

@Override

public RequestMappingHandlerMapping getRequestMappingHandlerMapping() {

return new AutoPrefixUrlMapping();

}

}

application.yml

api-package: com.example.demo

DemoController

@RestController

@RequestMapping("/demo")

public class DemoController {

@GetMapping("/a")

public ResponseEntity getUser() {

return ResponseEntity.status(HttpStatus.OK).body("22");

}

目录结构

e5045eff830568546bad1cb16fd50d81.png

请求地址:http://localhost:8080/api/demo/a

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值