spring :绕过特定控制器的 contextPath

2024-01-21

我正在构建一个Spring云配置 https://cloud.spring.io/spring-cloud-config/服务器和我使用该属性server.contextPath: /configServer但我也希望我的服务器对任何请求响应 200/ping (not /configServer/ping)。 有什么方法可以绕过特定 RestController 的 contextPath 属性(或任何其他方法来实现这一点)?

Thanks.


我找到了解决我的问题的方法:

有的是春天财产spring.cloud.config.server.prefix https://cloud.spring.io/spring-cloud-config/multi/multi__embedding_the_config_server.html这正是我想要的。这个前缀就像 contextPath 但仅适用于配置服务器,因此我可以编写自定义控制器/ping映射,同时配置服务器服务所有请求/configServer.

UPDATE:

示例代码:

这是响应 /ping 的控制器

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;    

@RestController
public class PingController {

    @RequestMapping(value = "/ping", method = RequestMethod.GET)
    public void respondToPing() {
        return;
    }

}

在应用程序属性中(我使用 yml):

...
spring:
  profiles:
    active: native
  cloud:
    config:
      server:
        prefix: /api/configuration
...

我无法共享整个配置文件,但值得一提的是它不包括server.contextPath财产。

这将导致这些映射:

2018-11-14 15:45:53.208  INFO 13412 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/ping],methods=[GET]}" onto public void com.coral.epos2.config.server.controllers.PingController.respondToPing()
2018-11-14 15:45:53.215  INFO 13412 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto public org.springframework.http.ResponseEntity<java.util.Map<java.lang.String, java.lang.Object>> org.springframework.boot.autoconfigure.web.BasicErrorController.error(javax.servlet.http.HttpServletRequest)
2018-11-14 15:45:53.218  INFO 13412 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],produces=[text/html]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
2018-11-14 15:45:53.333  INFO 13412 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/api/configuration/encrypt],methods=[POST]}" onto public java.lang.String org.springframework.cloud.config.server.encryption.EncryptionController.encrypt(java.lang.String,org.springframework.http.MediaType)
2018-11-14 15:45:53.336  INFO 13412 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/api/configuration/encrypt/{name}/{profiles}],methods=[POST]}" onto public java.lang.String org.springframework.cloud.config.server.encryption.EncryptionController.encrypt(java.lang.String,java.lang.String,java.lang.String,org.springframework.http.MediaType)
2018-11-14 15:45:53.339  INFO 13412 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/api/configuration/decrypt/{name}/{profiles}],methods=[POST]}" onto public java.lang.String org.springframework.cloud.config.server.encryption.EncryptionController.decrypt(java.lang.String,java.lang.String,java.lang.String,org.springframework.http.MediaType)
2018-11-14 15:45:53.342  INFO 13412 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/api/configuration/decrypt],methods=[POST]}" onto public java.lang.String org.springframework.cloud.config.server.encryption.EncryptionController.decrypt(java.lang.String,org.springframework.http.MediaType)
2018-11-14 15:45:53.345  INFO 13412 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/api/configuration/encrypt/status],methods=[GET]}" onto public java.util.Map<java.lang.String, java.lang.Object> org.springframework.cloud.config.server.encryption.EncryptionController.status()
2018-11-14 15:45:53.348  INFO 13412 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/api/configuration/key],methods=[GET]}" onto public java.lang.String org.springframework.cloud.config.server.encryption.EncryptionController.getPublicKey()
...

我的 pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

    <artifactId>config-server</artifactId>
    <groupId>foivaras</groupId>
    <modelVersion>4.0.0</modelVersion>
    <name>configuration server</name>
    <packaging>jar</packaging>
    <version>develop-SNAPSHOT</version>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.2.RELEASE</version>
        <relativePath/>
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    </properties>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Camden.SR6</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-config-server</artifactId>
        </dependency>
        <dependency>
            <groupId>net.logstash.logback</groupId>
            <artifactId>logstash-logback-encoder</artifactId>
            <version>4.7</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <executable>true</executable>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>

        </plugins>
    </build>
</project>

希望有帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

spring :绕过特定控制器的 contextPath 的相关文章

  • Android Studio 在编译时未检测到支持库

    由于 Android Studio 将成为 Android 开发的默认 IDE 因此我决定将现有项目迁移到 Android studio 中 项目结构似乎不同 我的项目中的文件夹层次结构如下 Complete Project gt idea
  • 解决错误:日志已在具有多个实例的atomikos中使用

    我仅在使用atomikos的实时服务器上遇到问题 在我的本地服务器上它工作得很好 我在服务器上面临的问题是 init 中出错 日志已在使用中 完整的异常堆栈跟踪 java lang RuntimeException Log already
  • 如何查找 Android 设备中的所有文件并将它们放入列表中?

    我正在寻求帮助来列出 Android 外部存储设备中的所有文件 我想查找所有文件夹 包括主文件夹的子文件夹 有办法吗 我已经做了一个基本的工作 但我仍然没有得到想要的结果 这不起作用 这是我的代码 File files array file
  • Java8无符号算术

    据广泛报道 Java 8 具有对无符号整数的库支持 然而 似乎没有文章解释如何使用它以及有多少可能 有些函数 例如 Integer CompareUnsigned 很容易找到 并且似乎可以实现人们所期望的功能 但是 我什至无法编写一个简单的
  • IntelliJ IDEA 创建的 JAR 文件无法运行

    我在 IntelliJ 中编写了一个跨越几个类的程序 当我在 IDE 中测试它时它运行良好 但是 每当我按照教程将项目制作成 jar 可执行文件时 它就不会运行 双击 out 文件夹中的文件时 该文件不会运行 并显示 无法启动 Java J
  • 使用 ANTLR 为 java 源代码生成抽象语法树

    如何使用 ANTLR 从 java src 代码生成 AST 有什么帮助吗 好的 步骤如下 前往ANTLR站点 http www antlr org 并下载最新版本 下载Java g和JavaTreeParser g文件来自here htt
  • 如何在 Java 中禁用 System.out 以提高速度

    我正在用 Java 编写一个模拟重力的程序 其中有一堆日志语句 到 System out 我的程序运行速度非常慢 我认为日志记录可能是部分原因 有什么方法可以禁用 System out 以便我的程序在打印时不会变慢 或者我是否必须手动检查并
  • 如何为 Gson 编写自定义 JSON 反序列化器?

    我有一个 Java 类 用户 public class User int id String name Timestamp updateDate 我收到一个包含来自 Web 服务的用户对象的 JSON 列表 id 1 name Jonas
  • jdbc4.MySQLSyntaxErrorException:数据库中不存在表

    我正在使用 SpringBoot 开发一个网络应用程序 这是我的application properties文件来指定访问数据库的凭据 spring datasource driverClassName com mysql jdbc Dri
  • 使用替换字符串中多个单词的最有效方法[重复]

    这个问题在这里已经有答案了 此刻我正在做 Example line replaceAll replaceAll cat dog replaceAll football rugby 我觉得那很丑 不确定有更好的方法吗 也许循环遍历哈希图 ED
  • 在具有相同属性名称的不同数据类型上使用 ModelMapper

    我有两节课说Animal AnimalDto我想用ModelMapper将 Entity 转换为 DTO 反之亦然 但是对于具有相似名称的一些属性 这些类应该具有不同的数据类型 我该如何实现这一目标 动物 java public class
  • 检查 protobuf 消息 - 如何按名称获取字段值?

    我似乎无法找到一种方法来验证 protobuf 消息中字段的值 而无需显式调用其 getter 我看到周围的例子使用Descriptors FieldDescriptor实例到达消息映射内部 但它们要么基于迭代器 要么由字段号驱动 一旦我有
  • 将 Long 转换为 DateTime 从 C# 日期到 Java 日期

    我一直尝试用Java读取二进制文件 而二进制文件是用C 编写的 其中一些数据包含日期时间数据 当 DateTime 数据写入文件 以二进制形式 时 它使用DateTime ToBinary on C 为了读取 DateTime 数据 它将首
  • Java直接内存:在自定义类中使用sun.misc.Cleaner

    在 Java 中 NIO 直接缓冲区分配的内存通过以下方式释放 sun misc Cleaner实例 一些比对象终结更有效的特殊幻像引用 这种清洁器机制是否仅针对直接缓冲区子类硬编码在 JVM 中 或者是否也可以在自定义组件中使用清洁器 例
  • 将多模块 Maven 项目导入 Eclipse 时出现问题 (STS 2.5.2)

    我刚刚花了最后一个小时查看 Stackoverflow com 上的线程 尝试将 Maven 项目导入到 Spring ToolSuite 2 5 2 中 Maven 项目有多个模块 当我使用 STS 中的 Import 向导导入项目时 所
  • 将 JSON 参数从 java 发布到 sinatra 服务

    我有一个 Android 应用程序发布到我的 sinatra 服务 早些时候 我无法读取 sinatra 服务上的参数 但是 在我将内容类型设置为 x www form urlencoded 之后 我能够看到参数 但不完全是我想要的 我在
  • Windows 上的 Nifi 命令

    在我当前的项目中 我一直在Windows操作系统上使用apache nifi 我已经提取了nifi 0 7 0 bin zip文件输入C 现在 当我跑步时 bin run nifi bat as 管理员我在命令行上看到以下消息 但无法运行
  • 运行 Jar 文件时出现问题

    我已将 java 项目编译成 Jar 文件 但运行它时遇到问题 当我跑步时 java jar myJar jar 我收到以下错误 Could not find the main class myClass 类文件不在 jar 的根目录中 因
  • Keycloak - 自定义 SPI 未出现在列表中

    我为我的 keycloak 服务器制作了一个自定义 SPI 现在我必须在管理控制台上配置它 我将 SPI 添加为模块 并手动安装 因此我将其放在 module package name main 中 并包含 module xml 我还将其放
  • 如何配置eclipse以保持这种代码格式?

    以下代码来自 playframework 2 0 的示例 Display the dashboard public static Result index return ok dashboard render Project findInv

随机推荐

  • ASP.NET Web API 基本身份验证授权标头

    我有一个BasicAuthenticationAttribute检查请求中的 Authorization 标头 但尽管它存在 它仍然认为 Authorization 标头为空 public class BasicAuthentication
  • 测试 Bash 中字符串是否包含非空白字符

    我的脚本正在读取并显示 id3 标签 我试图让它回显未知字段是否为空 但我尝试的每个 if 语句都不起作用 id3 标签是固定大小的 因此它们永远不会为空 但如果没有值 它们会用空格填充 即标题标签的长度为 30 个字符 到目前为止我已经尝
  • 如何在重定向 Express 4 之前找到原始请求路径

    假设我正在尝试访问该路径http localhost 3000 users WyCrYc28r foo 1414585518343 但路径 users仅需要经过身份验证的用户才能访问 如下所示 app get users isLoggedI
  • 如何检测在 Windows Phone 7 中选择了枢轴项目

    我正在 Windows Phone 7 中实现 Pivot 控件 我想知道在用户进行滑动手势后哪个枢轴项目被选择并处于活动状态 如何检测与Pivot控件相关的滑动手势事件 我应该使用哪种委托方法 SelectionChanged 是连接到的
  • 是否可以在不启动另一个进程的情况下提升UAC进程

    我想知道程序是否可以通过 UAC 提示来提示用户提升自己的权限 而无需启动另一个进程 我在互联网上找到的所有示例似乎都是 ShellExecute runas 它创建了一个具有提升权限的新进程 如果这是不可能的 那么我想我最好的解决方案是创
  • 在 Angular 5 / TypeScript 中获取类(接口)属性而不分配默认值

    假设我有一个接口 A 我按照 Angular 风格指南将其声明为一个类 这个类有很多属性 我想获取它们的名称 而不必为它们分配任何值 我怎样才能做到这一点 Class A export class A property1 string pr
  • segue后屏幕变黑

    我尝试对此进行调试但无济于事 基本上 当我从第一个视图控制器切换到第二个视图控制器时 屏幕会暂时变黑 代码按照我想要的方式执行 但是屏幕变黑对我来说有点痛苦 这是代码 从第一页开始的segue func mapView mapView MG
  • 使用表达式创建带有嵌套类的谓词

    我有这个 public class Company public int Id get set public string Name get set public class City public int Id get set publi
  • Java 集合框架的 Python 等价物是什么?

    Java 集合框架就像 C 标准模板库 用于表示和操作集合 将多个元素分组为一个单元的对象 的统一体系结构 http java sun com docs books tutorial collections intro index html
  • 如何在Azure中为Net Core 2应用程序启用应用程序日志?

    我正在尝试在天蓝色中启用应用程序日志 我有一个虚拟的 Net Core 2 应用程序在 azure 的 appService 中运行 基本上我的目标是查看日志流和应用程序日志文件中的跟踪消息 但我还没有找到执行此操作的正确方法 我在阅读其他
  • Angular - 构建后未处理的导航错误

    我通过以下命令构建了一个简单的角度应用程序 其中有 2 条路线 ng build aot prod base href 然后我打开index html文件位于dist文件夹和应用程序运行 但路线不起作用 我在控制台上收到以下警告 希望能很好
  • Yeoman gifsicle 错误(及其他)

    我在尝试执行此操作时收到以下错误yo angular 在搭建过程中还有其他错误消息 I did npm install g yo npm install g generator angular yo angular 我也尝试过做npm in
  • 如何使用 MP4Box 创建 mpd 文件

    我是 GPAC 的 MP4Box 工具的新手 使用它 我们可以为 DASH 创建 MPD 媒体演示描述 文件 我不知道该怎么做 有人使用此工具为视频文件创建 MPD 吗 MP4Box dash 2000 profile dashavc264
  • 授权具有多个角色的属性

    我想向控制器添加授权 一次用于多个角色 通常情况下 它看起来像这样 Authorize Roles RoleA RoleB RoleC public async Task
  • jQuery.post() .done() 并成功:

    jQuery文档关于jQuery post Assign handlers immediately after making the request and remember the jqxhr object for this reques
  • 用于获取正在运行的应用程序使用的容器和 vcore 数量的 YARN shell 命令

    hadoop job list似乎只显示mapreduce作业 但我的资源管理器UI显示了在YARN上运行的所有作业 包括Spark和Tez等 的 分配的CPU VCores 和 分配的内存MB 等内容 如何通过命令行而不是通过 UI 获取
  • Android - 如何创建一个活动的多个实例?

    我想知道是否可以在 Android 中创建单个 Activity 的多个实例 我目前使用以下代码启动自己的通话屏幕进行 Voip 测试 public void initInCallScreen String pName String pho
  • 将嵌套的 json 转换为没有嵌套对象的字典格式

    我有以下格式的输入数据 data u Richard u 48 u Josh u Beth u city u Seattle u Disability u no u enterprenuer u yes u Bryan u 32 u cit
  • 服务如何与其活动通信?服务如何调用启动该服务的活动中的方法?

    假设我有一个活动 它是一个列表 当该活动启动时 它会调用一个服务 该服务将执行后台操作 下载 解析和填充列表 我的问题是 怎样才能服务与活动通信 如何从服务调用活动中的方法 我是面向对象编程的新手 该服务是这样启动的 hello servi
  • spring :绕过特定控制器的 contextPath

    我正在构建一个Spring云配置 https cloud spring io spring cloud config 服务器和我使用该属性server contextPath configServer但我也希望我的服务器对任何请求响应 20