如何使用 Spring Cloud Function 公开多个函数端点?

2024-01-10

我有一个基本的Spring云函数具有两个声明函数“小写”和“大写”的应用程序。如果我像平常一样创建应用程序@SpringBootApplication并将两个函数注释为@Beans(功能豆),一切正常。这两个函数都通过单独的 HTTP 端点公开,我可以通过以下方式调用这些函数:

  • 卷曲本地主机:8080 /大写-H“内容类型:文本/纯文本”-d'我的 输入文本'
  • 卷曲本地主机:8080 /小写-H“内容类型: text/plain" -d '我的输入文本'

现在,我将应用程序的主类转换为“函数形式”,以缩短应用程序的启动时间(如官方文档中建议的那样:http://cloud.spring.io/spring-cloud-function/multi/multi__function_bean_definitions.html http://cloud.spring.io/spring-cloud-function/multi/multi__functional_bean_definitions.html):

@SpringBootConfiguration
public class LambdaMicroserviceApplication implements ApplicationContextInitializer<GenericApplicationContext> {

    public Function<String, String> uppercase() {
        return String::toUpperCase;
    }

    public Function<String, String> lowercase() {
        return String::toLowerCase;
    }

    public static void main(String[] args) {
        FunctionalSpringApplication.run(LambdaMicroserviceApplication.class, args);
    }

    @Override
    public void initialize(GenericApplicationContext context) {
        context.registerBean("uppercase", FunctionRegistration.class,
            () -> new FunctionRegistration<>(uppercase())
                    .type(FunctionType.from(String.class).to(String.class)));
        context.registerBean("lowercase", FunctionRegistration.class,
            () -> new FunctionRegistration<>(lowercase())
                    .type(FunctionType.from(String.class).to(String.class)));
    }
}

Problem:

Only one单个端点现在直接在根路径处公开:

curl localhost:8080/ -H "Content-Type: text/plain" -d '我的输入文本'

它在内部调用“uppercase”函数,无论 Bean 中的注册顺序如何初始化功能。

问题:

有办法打电话吗both通过其专用端点再次发挥作用:本地主机:8080/大写 and 本地主机:8080/小写?


事实证明,这实际上是 Spring Cloud Function 函数形式中缺失的功能。现在已在 2.1.0.M1 版本中实现。

See: https://github.com/spring-cloud/spring-cloud-function/issues/293 https://github.com/spring-cloud/spring-cloud-function/issues/293

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

如何使用 Spring Cloud Function 公开多个函数端点? 的相关文章

  • 如何在Java 8中实现Elvis运算符?

    我有一个经典的 Elvis 运算符 案例 其中我调用每个可能返回 null 的方法并将它们链接在一起 thing nullableMethod1 a nullableMethod2 b nullableMethod3 在 Java 8 中
  • 设置 SWT Shell 的默认字体

    有没有办法为整个 Shell 设置默认字体 以便任何新控件都将使用相同的字体 看来现在我必须为我创建的每个控件设置字体 这导致了太多的冗余 默认使用的字体由平台选择 请参阅中的其他信息 类字体 SWT 标准小部件工具包 http book
  • Java:高性能消息传递(单生产者/单消费者)

    我最初问这个问题here https stackoverflow com questions 3367192 java is while true loop in a thread bad whats the alternative 但我意
  • 在Java中清空数组/处理

    除了循环遍历数组中的每个元素并将每个元素设置为 null 之外 Java 处理中是否有一个本机函数可以简单地清空数组 或销毁它 以便能够将其重新声明为新数组 There s Arrays fill myArray null 并不是说它执行的
  • 使用 jpql 和 jpa 从日期字段中提取年份

    我想从数据库中的一行中提取年份部分 以便将其与值进行比较 这是我的功能 public List
  • 如何测试调用父类的受保护(不需要的)方法的方法?

    我陷入了一个非常奇怪的情况 我有一些需要测试的特定代码 这里是 public class A The real method of real class is so big that I just don t want to test it
  • 如何识别 Java 中的不可变对象

    在我的代码中 我正在创建一个对象集合 这些对象将由各种线程以只有在对象不可变的情况下才安全的方式访问 当尝试将新对象插入到我的集合中时 我想测试它是否是不可变的 如果不是 我将抛出异常 我能做的一件事是检查一些众所周知的不可变类型 priv
  • 如何在 Struts 2 OGNL 中将参数传递给方法调用

    我想使用属性作为对象方法的参数
  • 用 java 编写解释器时的 switch 或 if 语句

    当前的作业需要我编写一个程序 以一种非常微小且基本的编程语言 行为有点像 FORTRAN 来读取包含指令的文件并执行这些指令 基本上它是我猜的语言的简单解释器 它是完全线性的 所有语句都是按顺序定义的 并且只有字符串和整数变量 我需要查找和
  • Java 唤醒休眠线程

    我阅读了其他帖子 但没有找到我正在寻找的确切答案 所以我希望有人能给出一些澄清 我有一个将运行一段时间的程序 我有一些在后台运行的线程来执行各种任务 为了简单起见 让我们考虑 3 个线程 ThreadA每 10 秒执行一次任务 其中Thre
  • 如何制作无限的jscrollpane?

    我之前已经实现过拖动滚动 但是创建无限滚动窗格的最佳方法是什么 当然不会有任何滚动条 我将实现拖动滚动 我想做的是在无限表面上实现动态加载 EDIT 当然 它实际上不会是无限的 我想问如何伪造它 您可以执行以下操作 AdjustmentCl
  • 不要模拟值对象:过于通用的规则,没有解释

    以下是 Mockito 单元测试框架的引用 不要模拟值对象 为什么有人会想要这样做呢 因为实例化对象太痛苦了 gt 无效 原因 如果创造新的装置太困难 那就是一个迹象 代码可能需要一些认真的重构 另一种方法是创建 价值对象的构建者 有一些工
  • Java:使用 Java.util.concurrent 线程访问读取线程串行端口

    我正在尝试编写一个 Java 串行设备驱动程序并想使用 对我来说是新的 java util concurrent包裹 我有一种发送数据包然后等待 ACK 的方法 我打算有炭 接收在不同的线程中运行 如果接收线程收到 ACK 它应该使用发送数
  • 在 eclipse 之外将 Spring MVC 应用程序部署到 tomcat 的幕后会发生什么?

    我猜想使用像 eclipse 这样很棒的 IDE 的一个缺点是你会忽略应用程序幕后发生的事情 我是一名 Ruby 开发人员 所以不是一名 Java 老手 所以我一直在用 java 编写一个项目 并使用 spring 框架进行 IOC 和 M
  • 是否可以为 azure blob 存储中的给定目录生成具有写入权限的 SAS(共享访问签名)

    我们的 blob 存储帐户结构 容器名称 simple 在这个容器内我们有 blob aa one zip aa two zip bb ss zip bb dd zip 是否可以生成对aa 目录 有写权限 但对bb 目录 没有访问权限的SA
  • Google Cloud Messaging - 立即收到或长时间延迟收到的消息

    我在大学最后一年的项目中使用谷歌云消息传递 一切正常 但我在使用 GCM 时遇到了一些麻烦 通常 消息要么几乎立即传递 要么有很大的延迟 我读过这篇文章 但我真的认为它不适用于这种情况 GCM 通常会在消息发送后立即传送消息 然而 这并不总
  • 方法签名中带或不带synchronized关键字的方法具有相同的字节码

    对于以下 2 个类 获得相同的 Java 字节码 java版本 java 版本 1 8 0 181 Java TM SE 运行时环境 构建 1 8 0 181 b13 Java HotSpot TM 64 位服务器 VM 内部版本 25 1
  • 编写自定义 Eclipse 调试器

    EDIT 一定有某种方法可以解决这个问题 而无需编写全新的调试器 我目前正在研究在现有 java 调试器之上构建的方法 如果有人对如何获取 Java 调试器已有的信息 有关堆栈帧 变量 原始数据等 有任何想法 那将非常有帮助 我想要做的是我
  • 使用 Runtime.getRuntime().exec() 进行重定向不起作用

    我需要从程序执行命令 命令行是可以的 我在终端试了一下 但是在程序中不行 我从我的代码中添加一个副本 File dir new File videos String children dir list if children null Ei
  • 如何使用剪辑来减少绘画时间?

    我正在尝试使用 Clip 来减少 CPU 负载 但剪辑在屏幕上留下了一些我似乎无法摆脱的垃圾 另外 打开和关闭剪辑似乎对 CPU 负载没有影响 在任一情况下 大部分时间似乎都花在重绘管理器和绘制缓冲图像上 import static jav

随机推荐

  • 如何检查列表列表的元素是否匹配条件?

    我有一个列表列表 pairs lt list list Name A Value 11 list Name B Value 17 list Name C Value 23 我该如何检查pairs列表包含一个名称 A 的元素 我也想得到这个元
  • Node.js:如何在查询聚合中返回对象?

    我需要使用以下方法计算集合中指定字段的总和group by 所以 我使用了聚合函数 我的愿望是函数应该只返回对象 当我使用aggregate 它返回Array of Objects 但我的查询是返回对象数组 不是单个对象 例如 到目前为止我
  • 设置目录可见性隐藏 woo-commerce

    如何以编程方式设置隐藏在 woo commerce WordPress 中的目录可见性 就像这里提到的 https docs woothemes com document catalog visibility options https d
  • 来自不同控件的 WPF 触发器

    我正在尝试根据包含的文本框的焦点属性更改包含边框的背景颜色 有人可以解释我的代码有什么问题吗
  • 为什么 Python 中 `object() > 0` 为 True?

    In 32 object gt 0 Out 32 True 事实上 它比我尝试过的任何整数都大 因为 Python 2 x 试图在不同类型的对象之间进行可用的比较 即使它们没有意义 它已在 Python 3 上修复 gt gt gt obj
  • 基于 Boost.ASIO 的 HTTP 客户端库(如 libcurl)[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个现代的 C HTTP 库 因为 libcurl 的缺点很难通过 C 包装器来解决 基于
  • 在SoapUI免费版中创建脚本库

    我是 SoapUI 和 groovy 脚本编写的新手 我想创建一个 groovy 脚本存储库 可以在各种测试步骤中重用 我正在使用 SoapUI 免费版本 以下是我的 SoapUI 项目的结构 Project TestSuite TestC
  • 如何从 3 维 sympy 表达式获得快速 lambda 函数?

    我正在使用 sympy 为 cfd 模拟生成不同的表达式 大多数这些表达式都是 exp f x y z 类型 例如 f x y z sin x cos y sin z 为了获取网格上的值 我使用 simpy lambdify 例如 impo
  • 在芹菜中的多个队列中确定队列的优先级?

    我们使用 celery 来执行异步后台任务 并且有 2 个队列用于不同优先级的任务 我们有 2 个节点集群分别为它们提供服务 事情进展顺利 正如预期的那样 问题 我们得到的大多是低优先级的任务 为了优化资源利用率 我想知道是否有一种方法可以
  • 绘制速度不够快,无法跟上 TouchMoved 的速度?

    我正在尝试在我的 iPhone 应用程序中实现简单的绘画功能 我尝试用位图画笔更新位图 我也尝试过本教程 http www ipodtouchfans com forums showthread php t 132024 尽管代码几乎完全不
  • 如何获取具有指定名称的 DataMemberAttribute 的属性?

    如何反射性地获取具有给定名称的 DataMember 的属性 假设每个 DataMember 都有一个唯一的名称 例如 在以下代码中 名称为 p1 的 DataMember 的属性为PropertyOne DataContract Name
  • 如何计算 R 中的文本行数?

    我想使用 R 它是议会演讲记录的笔录 计算文本中不同演讲者所说的行数 基本文本如下所示 MR JOHN This activity has been going on in Tororo and I took it up with the
  • 用户 Fragment.setRetainInstance 不处理重新创建是一个好习惯吗?

    这是一个很好的做法吗Fragment setRetainInstance 为了你所有的Fragments为了摆脱处理Fragment游戏 保存实例状态等 为什么不 是的 如果片段必须保留配置更改 您可以将其与不在返回堆栈中的片段一起使用 它
  • CSS - 禁用宽度:自动

    我有一个尺寸为 32 x 32 的图像 即宽度和高度属性 但是 图像的大小仍保持默认值 150 x 150 看看CSS我可以看到有一个width auto在父 CSS 文件中 当我关闭此功能时 图像大小会调整为 32 x 32 我想在不更改
  • 如何将wxi文件包含到wxs中?

    继很好的建议 https stackoverflow com questions 471424 wix tricks and best practices我已将一些变量移至WXI file 我如何将其包含在WXS file 使用 预处理器标
  • 在 C# 中保存和加载 DataGridView 内容和样式

    我有一个包含许多列和行的 DataGridView 用户可以右键单击单元格并从 ContextMenuStrip 中选择一个选项 选项有红色 蓝色 绿色等颜色 如果用户选择红色 则所选单元格将其背景颜色设置为红色 并且用户还可以在该单元格中
  • 可以使用 HTML5 本地存储来存储文件吗?如果没有,怎么办?

    如何通过浏览器机制 插件是可接受的解决方案 在用户计算机上缓存 管理许多大文件 视频 据我所知 本地存储是关于数据库类型的数据 而不是文件 FileSystem API 1 2 将是您未来最好的选择 在某一时刻它是非常前沿的 然而它已经被w
  • iOS UIActivity 视图控制器:添加到阅读列表按钮?

    是否有一项服务能够从应用程序中将 URL 添加到 iOS Safari 的阅读列表 我想要添加一个 url 和一个 UIWebView 但我已经研究过 但找不到任何东西 这是我的工作 UIActivityViewController IBA
  • 如何仅通过使用reduce函数在python中创建字数统计输出?

    我有以下元组列表 a 1 a 1 b 1 c 1 a 1 c 1 我想知道我是否可以利用 pythonreduce函数来聚合它们并产生以下输出 a 3 b 1 c 2 或者如果还有其他方法 我也想知道 循环也可以 使用似乎很难实现reduc
  • 如何使用 Spring Cloud Function 公开多个函数端点?

    我有一个基本的Spring云函数具有两个声明函数 小写 和 大写 的应用程序 如果我像平常一样创建应用程序 SpringBootApplication并将两个函数注释为 Beans 功能豆 一切正常 这两个函数都通过单独的 HTTP 端点公