loading

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 @ 2023-06-23 03:01  Himmelbleu  阅读(8)  评论(0编辑  收藏  举报