• Spring Boot Change Context Path


    1.概述

    默认情况下,Spring Boot 在根上下文路径(“/”)上提供内容

    虽然通常情况下,优先考虑约定优于配置,但有些情况下我们确实希望拥有自定义路径。

    在本快速教程中,我们将介绍配置它的不同方法。

    2.设置属性

    与许多其他配置选项一样,可以通过设置属性(即server.servlet.context-path)来更改Spring Boot中的上下文路径

    请注意,这适用于Spring Boot 2.x.

    对于Boot 1.x,该属性为  server.context-path

    设置此属性有多种方法,让我们逐一查看。

    2.1.使用  application.properties  / yml

    更改上下文路径的最直接方法是在application.properties / yml文件中设置该属性

    server.servlet.context-path=/baeldung

    我们也可以将它保存在当前工作目录(类路径之外)中,而不是将属性文件放在src/main/resources

    2.2.Java系统属性

    在初始化上下文之前,我们还可以将上下文路径设置为Java系统属性:

    1 public static void main(String[] args) {
    2     System.setProperty("server.servlet.context-path", "/baeldung");
    3     SpringApplication.run(Application.class, args);
    4 }
     

    2.3.OS环境变量

    Spring Boot也可以依赖OS环境变量。在基于Unix的系统上,我们可以编写:

    export SERVER_SERVLET_CONTEXT_PATH=/baeldung

    在Windows上,设置环境变量的命令是:

    set SERVER_SERVLET_CONTEXT_PATH=/baeldung

    在上述环境变量是springboot2.xx的,  如果我们用1.XX,变量是SERVER_CONTEXT_PATH

    2.4.命令行参数

    我们也可以通过命令行参数动态设置属性:

    java -jar app.jar --server.servlet.context-path=/baeldung
     

    3.使用Java Config

    现在让我们通过使用配置bean填充bean工厂来设置上下文路径。

    使用Spring Boot 2,我们可以使用  WebServerFactoryCustomizer

    1 @Bean
    2 public WebServerFactoryCustomizer<ConfigurableServletWebServerFactory>
    3   webServerFactoryCustomizer() {
    4     return factory -> factory.setContextPath("/baeldung");
    5 }
     

    使用Spring Boot 1,我们可以创建EmbeddedServletContainerCustomizer的实例  

    @Bean
    public EmbeddedServletContainerCustomizer
      embeddedServletContainerCustomizer() {
        return container -> container.setContextPath("/baeldung");
    }
     

    4.配置的优先顺序

    有了这么多选项,我们最终可能会为同一个属性配置多个配置。

    下面是降序的优先级顺序 Spring Boot用它来选择有效的配置:

    1. Java配置
    2. 命令行参数
    3. Java系统属性
    4. 操作系统环境变量
    5. 当前目录中的application.properties
    6. 类路径中的application.propertiessrc / main / resources或打包的jar文件)

    5.结论

    在本文中,我们快速介绍了在Spring Boot应用程序中设置上下文路径或任何其他配置属性的不同方法。

  • 相关阅读:
    Python数据分析(一)pandas数据切片
    回归分析
    C# + ArcEngine 常用方法(不定时更新)
    安卓11配置谷歌FCM推送报错
    VUE开发之异常篇
    C#编程之“串口通讯多次接收”
    关于swift使用CocoaPods倒入三方库的framework后父类倒入子类无法继承的问题
    warning: directory not found for option“XXXXXX” 解决方案
    关于获取tableView中cell数据的处理
    怎么处理使用UINavigation(导航控制器时) UIScrollView及其子类UITableView、UICollectionView可能出现的向下偏移64Px或者顶部对齐等问题
  • 原文地址:https://www.cnblogs.com/gc65/p/10618296.html
Copyright © 2020-2023  润新知