Я пытаюсь установить программный корневой каталог приложения Spring. Причиной для корня контекста является то, что мы хотим получить доступ к приложению из localhost:port/{app_name} и добавим к нему все пути контроллера.
Вот файл конфигурации приложения для веб-приложения.
@Configuration
public 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;
  }
}
Ниже приведен указатель на главной странице.
@Controller
public 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, чтобы не добавлять корень контекста до сопоставления запросов?