java 如何在Sping Boot 应用程序中启用和公开特定端点?

gab6jxml  于 2023-05-05  发布在  Java
关注(0)|答案(1)|浏览(112)

我有两个端点/users和/groups但是,我希望在给定的配置文件中仅可访问/users端点。我能否指定要启用的端点,例如通过application.properties?
通过使用@Profiles,它可以工作,但我想知道是否有可能将其集中在一个地方,如application.properties

fkvaft9z

fkvaft9z1#

这在某种程度上是更集中的,但同样可以通过将每个配置文件的方法分组在同一个类下并在那里添加配置文件注解来实现。

@RestController
public class MyController {

  @GetMapping("/hello-dev")
  public String helloDev() {
    return "Hello from dev";
  }

  @GetMapping("/hello-prod")
  public String helloProd() {
    return "Hello from prod";
  }

  @Configuration
  @Profile("prod")
  static class ProdConfig {
    @Bean
    public WebMvcConfigurer prodWebMvcConfigurer() {
      return new WebMvcConfigurer() {
        @Override
        public void addViewControllers(ViewControllerRegistry registry) {
          registry.addRedirectViewController("/hello", "/hello-prod");
        }
      };
    }
  }

  @Configuration
  @Profile("dev")
  static class DevConfig {
    @Bean
    public WebMvcConfigurer devWebMvcConfigurer() {
      return new WebMvcConfigurer() {
        @Override
        public void addViewControllers(ViewControllerRegistry registry) {
          registry.addRedirectViewController("/hello", "/hello-dev");
        }
      };
    }
  }
}

现在,如果你看一下这个例子,你可以从技术上将端点值提取到application.properties,然后在你的@Configuration中使用它,但我不会走到那一步。

相关问题