对比新文件 |
| | |
| | | package com.iailab.framework.web.config; |
| | | |
| | | import lombok.AllArgsConstructor; |
| | | import lombok.Data; |
| | | import lombok.NoArgsConstructor; |
| | | import org.springframework.boot.context.properties.ConfigurationProperties; |
| | | import org.springframework.validation.annotation.Validated; |
| | | import org.springframework.web.servlet.config.annotation.PathMatchConfigurer; |
| | | |
| | | import javax.validation.Valid; |
| | | import javax.validation.constraints.NotEmpty; |
| | | import javax.validation.constraints.NotNull; |
| | | |
| | | @ConfigurationProperties(prefix = "iailab.web") |
| | | @Validated |
| | | @Data |
| | | public class WebProperties { |
| | | |
| | | @NotNull(message = "APP API 不能为空") |
| | | private Api appApi = new Api("/app-api", "**.controller.app.**"); |
| | | @NotNull(message = "Admin API 不能为空") |
| | | private Api adminApi = new Api("/admin-api", "**.controller.admin.**"); |
| | | |
| | | @NotNull(message = "Admin UI 不能为空") |
| | | private Ui adminUi; |
| | | |
| | | @Data |
| | | @AllArgsConstructor |
| | | @NoArgsConstructor |
| | | @Valid |
| | | public static class Api { |
| | | |
| | | /** |
| | | * API 前缀,实现所有 Controller 提供的 RESTFul API 的统一前缀 |
| | | * |
| | | * |
| | | * 意义:通过该前缀,避免 Swagger、Actuator 意外通过 Nginx 暴露出来给外部,带来安全性问题 |
| | | * 这样,Nginx 只需要配置转发到 /api/* 的所有接口即可。 |
| | | * |
| | | * @see IailabWebAutoConfiguration#configurePathMatch(PathMatchConfigurer) |
| | | */ |
| | | @NotEmpty(message = "API 前缀不能为空") |
| | | private String prefix; |
| | | |
| | | /** |
| | | * Controller 所在包的 Ant 路径规则 |
| | | * |
| | | * 主要目的是,给该 Controller 设置指定的 {@link #prefix} |
| | | */ |
| | | @NotEmpty(message = "Controller 所在包不能为空") |
| | | private String controller; |
| | | |
| | | } |
| | | |
| | | @Data |
| | | @Valid |
| | | public static class Ui { |
| | | |
| | | /** |
| | | * 访问地址 |
| | | */ |
| | | private String url; |
| | | |
| | | } |
| | | |
| | | } |