将上下文路径添加到 Spring Boot 应用程序

将上下文路径添加到 Spring Boot 应用程序,第1张

我正在尝试以编程方式设置 Spring Boot
应用程序上下文根。上下文根的原因是我们希望应用程序可以从中访问localhost:port/{app_name}并将所有控制器路径附加到它。

这是 web-app 的应用程序配置文件

@Configurationpublic class ApplicationConfiguration {  Logger logger = LoggerFactory.getLogger(ApplicationConfiguration.class);  @Value("${mainstay.web.port:12378}")  private String port;  @Value("${mainstay.web.context:/mainstay}")  private String context;  private Set<ErrorPage> pageHandlers;  @PostConstruct  private void init(){      pageHandlers = new HashSet<ErrorPage>();      pageHandlers.add(new ErrorPage(HttpStatus.NOT_FOUND,"/notfound.html"));      pageHandlers.add(new ErrorPage(HttpStatus.FORBIDDEN,"/forbidden.html"));  }  @Bean  public EmbeddedServletContainerFactory servletContainer(){      TomcatEmbeddedServletContainerFactory factory = new TomcatEmbeddedServletContainerFactory();      logger.info("Setting custom configuration for Mainstay:");      logger.info("Setting port to {}",port);      logger.info("Setting context to {}",context);      factory.setPort(Integer.valueOf(port));      factory.setContextPath(context);      factory.setErrorPages(pageHandlers);      return factory;  }  public String getPort() {      return port;  }  public void setPort(String port) {      this.port = port;  }}

这是主页的索引控制器。

@Controllerpublic class IndexController {  Logger logger = LoggerFactory.getLogger(IndexController.class);  @RequestMapping("/")  public String index(Model model){      logger.info("Setting index page title to Mainstay - Web");      model.addAttribute("title","Mainstay - Web");      return "index";  }}

应用程序的新根目录应位于localhost:12378/mainstay,但仍位于localhost:12378

我错过了什么导致 Spring Boot 在请求映射之前不附加上下文根?

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/read/1370004.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-15
下一篇 2022-06-15

发表评论

登录后才能评论
保存