Spring Boot - 统一管理 Controller 的 URL 前缀

UnitedApiPathProps

file:[UnitedApiPathProps.java]
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@Data
@Component
@ConfigurationProperties(prefix = "api.path")
public class UnitedApiPathProps {

    String globalPrefix = "api"

}

WebMvcConfig

file:[WebMvcConfig.java]
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {

    @Resource
    private UnitedApiPathProps pathProps;

    @Override
    public void configurePathMatch(PathMatchConfigurer configurer) {
        configurer.addPathPrefix(
                pathProps.getGlobalPrefix(),
                c -> c.isAnnotationPresent(UnitedController.class));
    }
}

application.yml

file:[application.yml]
api:
  path:
    global-prefix: api

Controller

file:[Controller.java]
@CrossOrigin
@UnitedController("/admin")
public class AdminController {
  // ......
}

只要使用了 @UnitedController 注解的 Controller 请求前缀都是 /api

posted @   Himmelbleu  阅读(25)  评论(0编辑  收藏  举报
首页
随笔
博客园
我的
标签
管理
Spring Boot - 统一管理 Controller 的 URL 前缀
发表于 2023-06-23 03:01
|
已有 25 人阅读
|
留下 0 条评论
|
全文字数 ≈ 14字

UnitedApiPathProps

UnitedApiPathProps.java
JAVA

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@Data
@Component
@ConfigurationProperties(prefix = "api.path")
public class UnitedApiPathProps {

    String globalPrefix = "api"

}

WebMvcConfig

WebMvcConfig.java
JAVA

@Configuration
public class WebMvcConfig implements WebMvcConfigurer {

    @Resource
    private UnitedApiPathProps pathProps;

    @Override
    public void configurePathMatch(PathMatchConfigurer configurer) {
        configurer.addPathPrefix(
                pathProps.getGlobalPrefix(),
                c -> c.isAnnotationPresent(UnitedController.class));
    }
}

application.yml

application.yml
YML

api:
  path:
    global-prefix: api

Controller

Controller.java
JAVA

@CrossOrigin
@UnitedController("/admin")
public class AdminController {
  // ......
}

只要使用了 @UnitedController 注解的 Controller 请求前缀都是 /api

作者:Himmelbleu
出处: https://www.cnblogs.com/Himmelbleu/#/p/17490158
版权:本作品采用「 署名-非商业性使用-相同方式共享 4.0 国际 」许可协议进行许可。
文章目录
UnitedApiPathProps
WebMvcConfig
application.yml
Controller
点击右上角即可分享
微信分享提示