接口和@RequestBody

2024-02-14

我目前正在开发一个项目,该项目允许用户(通过网络)预订在给定时间段内使用所选资源。在这个程序中,我试图遵循 Spring 的接口编程哲学(以及一般的最佳实践),因此我尝试在具体类中重复功能的任何地方使用接口。

我创建的一个接口称为 BookableResourceController,它指定控制器处理要预订的任何类型资源所需的最低功能所需的方法。我还使用了第二个接口 BookableResource,它标识哪些对象模拟了允许通过应用程序预订的资源。

我当前遇到的问题是 BookableResourceController 定义的一些方法使用 @RequestBody 映射将 JSON 对象转换为方法参数,并且由于 Jackson 只能将 JSON 转换为“SimpleType”对象,因此如果我将输入参数指定为 BookableResource。

@RequestMapping(value="/delete.html", method = RequestMethod.POST)  
public ModelAndView processDeleteResource(
    @RequestBody BookableResource resource); 

无法构造实例 org.codehaus.jackson.map.type.SimpleType, 问题:抽象类型只能是 用附加类型实例化 信息

据我所知,这个错误意味着我需要定义 BookableResource 的特定实现,这意味着我很可能需要从接口中排除这些方法,即使用于此目的的任何控制器都需要这些方法。

我要问的是是否有人知道如何将接口定义为期望的对象@RequestBody使用 JSON 进行映射,或者有人对如何构建我的控制器接口以包含这些方法有任何建议吗?

Cheers


我不确定它是否有效,但你可以尝试使其通用:

public interface BookableResourceController<R extends BookableResource> {
    @RequestMapping(value="/delete.html", method = RequestMethod.POST)
    public ModelAndView processDeleteResource(@RequestBody R resource); 
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

接口和@RequestBody 的相关文章

  • Apache Thrift Java-Javascript 通信

    我正在编写一个基于 Apache Thrift 的 Java 服务器 它将从 Javascript 客户端接收数据 我已经完成了 Java 服务器 但问题是我可以获得 Javascript 客户端的工作示例 我无法找到一个好的示例 构建文档
  • 如何将本机数据库运算符 (postgres ~) 与 JPA 标准生成器一起使用?

    我使用 JPA 2 0 标准构建以下查询 简化 select n from notif n where n message b la 我正在使用 postgresql 数据库 我真的需要 运算符 而不是像 我可以使用与 CriteriaBu
  • 获取Android库中的上下文

    我正在编写一个 Android 应用程序 它的一些功能封装在内部库中 但是 要使此功能发挥作用 库需要一个应用程序上下文的实例 为图书馆提供这种上下文的最佳方式是什么 我看到了一些选择 但没有一个有吸引力 Have my library c
  • Java Junit 测试 HTTP POST 请求

    我需要测试以下方法而不改变方法本身 该方法向服务器发出 POST 方法 但我需要制作一个独立于服务器的测试用例 在将其重定向到本地文件之前 我测试了类似的方法 但为此我将协议指定为文件 主机名指定为 localhost 端口指定为 1 我的
  • 使用 kryo 注册课程的策略

    我最近发现了 kryonet 库 它非常棒并且非常适合我的需求 然而 我遇到的一个问题是制定一种好的策略来注册所有可以转移的类 我知道我可以在每个对象中编写一个静态方法 该方法将返回它使用的所有类的列表 但我真的不想这样做 为了我自己的时间
  • java项目中无法加载类“org.slf4j.impl.StaticLoggerBinder”错误? [复制]

    这个问题在这里已经有答案了 我越来越Failed to load class org slf4j impl StaticLoggerBinder 错误 我想将记录器写入文件 所以我使用了 log4j jar 并使用 apache tomca
  • Apache Camel 的 JsonMappingException

    我在骆驼路线上遇到以下异常 Caused by com fasterxml jackson databind JsonMappingException No serializer found for class org apache cam
  • Java 中如何验证字符串的格式是否正确

    我目前正在用 Java 编写一个验证方法来检查字符串是否是要更改为日期的几种不同格式之一 我希望它接受的格式如下 MM DD YY M DD YY MM D YY 和 M D YY 我正在测试第一种格式 每次它都告诉我它无效 即使我输入了有
  • 是否可以手动检查 LocateRegistry 是否存在?

    I 已经发现 https stackoverflow com a 8338852 897090一种安全的方式获得LocateRegistry 即使注册表尚不存在 Registry registry null try registry Loc
  • 在Java中如何将字节数组转换为十六进制?

    我有一个字节数组 我希望该数组的每个字节字符串转换为其相应的十六进制值 Java中有没有将字节数组转换为十六进制的函数 byte bytes 1 0 1 2 3 StringBuilder sb new StringBuilder for
  • ActiveMQ JNDI 查找问题

    尝试使用 JNDI 运行以下 ActiveMQ http activemq apache org jndi support html http ActiveMQ 20JNDI 并且我的 jboss server node lib 文件夹中有
  • jDBI中如何进行内查询?

    我怎样才能在 jDBI 中执行这样的事情 SqlQuery select id from foo where name in
  • 使用 Guava Ordering 对对象列表进行多条件排序

    我有一个类无法实现可比较 但需要根据 2 个字段进行排序 我怎样才能用番石榴实现这一目标 假设班级是 class X String stringValue java util Date dateValue 我有一个清单 List
  • 由于 json 字符串化 dict 键导致数据丢失

    考虑下面的例子 gt gt gt import json gt gt gt d 0 potato 0 spud gt gt gt json dumps d 0 potato 0 spud gt gt gt json loads json d
  • 为什么不能在 if 语句中声明变量?

    以下 Java 代码无法编译 int a 0 if a 1 int b 0 if a 1 b 1 为什么 不能有任何代码路径导致程序将 1 分配给b无需先声明 我突然想到b的变量范围可能仅限于第一个if声明 但后来我不明白为什么 如果我实在
  • 检查按钮是否可用?如果没有,请等待 5 秒钟,然后再次检查?

    基本上我想看看此刻是否可以单击按钮 如果没有我想再试一次 所以我需要某种 goto 函数来返回到代码的前一行 尽管我怀疑我写得非常糟糕 但它本来可以做得更容易 try driver findElement By xpath button i
  • 从 InputStream 中删除换行符

    我喜欢从一个文件中删除所有换行符 对于 n 和 r n java io InputStream 在读取文件时 相应的方法如下所示 param target linkplain File return linkplain InputStrea
  • Java 中序列化的目的是什么?

    我读过很多关于序列化的文章 以及它如何如此美好和伟大 但没有一个论点足够令人信服 我想知道是否有人能真正告诉我通过序列化一个类我们真正可以实现什么 让我们先定义序列化 然后我们才能讨论它为什么如此有用 序列化只是将现有对象转换为字节数组 该
  • Java时区混乱

    我正在运行 Tomcat 应用程序 并且需要显示一些时间值 不幸的是 时间快到了 还有一个小时的休息时间 我调查了一下 发现我的默认时区被设置为 sun util calendar ZoneInfo id GMT 08 00 offset
  • 如何使用socket.io发送图像文件(二进制数据)?

    我无法从以下位置发送数据Android Client to NodeJS Server I use Socket IO 客户端 https github com socketio socket io client java我的客户端中的ja

随机推荐

  • lambda 表达式中的枚举的编译方式不同;重载解析改进的结果是什么?

    在尝试 Visual Studio 2015 RC 时 我收到了先前工作代码的运行时错误 给定 lambda x gt x CustomerStatusID CustomerStatuses Active 它被传递给一个函数作为Expres
  • 在 Google Market 上发布一款应用的多个版本

    我有一个 Android 应用程序 我想用它来显示高质量的图像 然而 有许多不同的屏幕尺寸和比例 我知道有一些过滤器可以在市场中显示仅适用于小 中 大屏幕设备的应用程序 如果我将两种尺寸的图像放入 1 个应用程序中 应用程序的大小将会增加一
  • 在 RSA 下解码有效负载后未获得相同的会话密钥

    使用以下使用 crypto 库的函数对其进行编码和解码后 我没有获得相同的会话密钥 CryptoPP RSA PrivateKey RSA master privKey CryptoPP RSA PublicKey RSA master p
  • 启动/广播接收器重启问题

    这是一个相当常见的问题 但我失去了理智 我想我已经彻底满足了要求 我希望 BroadcastReceiver 在手机重新启动时执行某些操作 我的广播接收器 用于启动 public class BootReceiver extends Bro
  • Python 闭包和单元格(封闭值)

    Python 的机制是什么使得 lambda x for x in range 5 2 is 4 将 x 的副本绑定到每个 lambda 表达式以使上述表达式等于 2 的常用技巧是什么 我的最终解决方案 for template model
  • 如何让 Chrome 浏览器版本现在与 Python 一起运行? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我正在使用 selenium 运行一个应用程序 并且在运行 Chrome 驱动程序之前我想知道安装的实际 chrome 浏览器版本 以避免出
  • 如何在 LLVM 中将 genericValue 转换为 Value?

    我从事口译工作 我在内存中有一个变量的地址 我设法从它中获取实际值 并使用 LoadValueFromMemory 函数将其放入 genericValue 中 现在我需要创建一个 StoreInst 并希望将获得的值放入 Value 对象中
  • 带有 where 子句的 SQL 窗口函数?

    我正在尝试为用户关联两种类型的事件 我想查看所有事件 B 以及该用户在 A 事件之前的最新事件 A 如何实现这一目标呢 特别是 我正在尝试在 Postgres 中做到这一点 我希望可以在窗口函数中使用 where 子句 在这种情况下 我基本
  • Flutter:读取 BloC 状态的 Stream 数据,如果发生变化则重新渲染 UI

    我在使用 BloC 模式并结合使用 Dio 显示下载过程时遇到问题 谁能告诉我 如何从 dio 获取 onUploadProgress 进入块状态并在状态内的进度更新时显示它 目前我有 UI BloC 和 API 类 我需要将我的块传递到
  • 在 Woocommerce 中更改移动设备上的 FlexSlider 选项

    默认情况下 在单个产品页面上启用选项 controlNav 缩略图 桌面版没问题 但在移动设备上我希望 controlNav true 点 我尝试使用 ajax 来完成此操作 但我认为我需要以某种方式使用 Flex 幻灯片刷新该片段以应用过
  • 我应该对 UDP 使用(非阻塞)NIO 吗?

    根据这个帖子 https stackoverflow com questions 569555 non blocking udp i o vs blocking udp i o in java UDP 只是不阻塞 使用 非阻塞 NIO AP
  • 如何通过 UTC 偏移量确定时区?

    我有一个场景 我有一个时区偏移 以分钟为单位 需要确定它的时区 我知道所有数据都不可用 例如 可能有几个时区的偏移量为 240 分钟 但 最佳猜测 是可以接受的 我的第一遍看起来像这样 foreach var info in TimeZon
  • 无法让 Django/Postgres 应用程序设置在 Heroku 上运行

    我正在使用 Two Scoops of Django 模板制作一个 Django 应用程序 收到此 Heroku 错误 我的 Postgres 生产设置是否已关闭 操作错误 无法连接到服务器 连接被拒绝 服务器是否在主机 localhost
  • 如何向弹出窗口添加页脚并使内容可滚动?使用 Twitter 引导程序 3

    这是图片 我必须做的 如何向弹出窗口添加页脚并使内容可滚动 使用 Twitter 引导程序 3 要创建带页脚的弹出窗口 您必须更改弹出窗口template并添加一些 CSS 来设置页脚的样式 在这里 我还在页脚中放置了一个按钮 正如您在绘图
  • 毛里求斯国旗问题

    我已经为该问题制定了解决方案荷兰国旗问题 http en wikipedia org wiki Dutch national flag problem已经 但这一次 我想尝试一些更困难的事情 毛里求斯国旗问题 4 种颜色 而不是 3 种 对
  • 用逗号格式化json文件?

    我有一个 json 文件 bla bla bla bla bla bla bla bla 如何将它们格式化为有效的 json 类型 例如 bla bla bla bla bla bla bla bla bla bla 每个后面插入逗号 除了
  • Python中如何查找引发异常的位置

    如何确定在哪个函数中引发了异常 例如存在两个函数 foo 和 bar 在 foo 中 异常将随机引发 import random def foo if random randint 1 10 2 raise Exception bar de
  • 在doctrine2中是否可以有一个不是主键的自动增量列?

    在doctrine2中 我有一个实体 它有一个从Web服务提供的主键 并且还有一个应该是自动增量的索引 我可以在mysql中手动设置 但无法在doctrine2中进行此设置 I used columnDefinition of INT AU
  • Windbg lm:“延迟”是什么意思?

    我正在 WinDbg 中调试 NET 2 0 程序集的故障转储文件 当我在 WinDbg 中输入 lm 时 我会得到一长串已加载的模块 如下所示 723c0000 72950000 mscorwks deferred 这里的 延期 是什么意
  • 接口和@RequestBody

    我目前正在开发一个项目 该项目允许用户 通过网络 预订在给定时间段内使用所选资源 在这个程序中 我试图遵循 Spring 的接口编程哲学 以及一般的最佳实践 因此我尝试在具体类中重复功能的任何地方使用接口 我创建的一个接口称为 Bookab