有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Http请求参数类型传播

我有一个简单的web应用程序,可以将请求传播到另一个web应用程序。我的web应用程序提供了两个非常相似的API,它们查询相同的web应用程序,但用于不同类型的信息。例如,我的web应用程序使用这两个URL

http://myservice.com:8080/otherservicecall1?userId=(userid)

http://myservice.com:8080/otherservicecall2?accountId=(accountid)

如果我想为我的web应用使用相同的服务和数据层,那么区分这些请求的两个不同参数的最佳方法是什么?例如,我的数据层中有一个类,它处理来自另一个服务的404,其中包含以下日志消息:

log.error("Could not find information on userId = " + userId);

但这样的日志和异常消息不够通用,无法应用于这两种类型的请求,这意味着我必须传入一个参数类型变量,该变量只保存参数的名称

我想我最终要问的是,有没有一种简单的方法可以在不通过每个函数调用的情况下,通过控制器通过服务和数据层传递参数的名称?我曾想过以某种方式使用枚举,但我看不出它们在这里有什么帮助


共 (1) 个答案

  1. # 1 楼答案

    对于异常,我们抛出一个通用的ObjectNotFoundException,该方法将返回我们正在寻找的对象的id。如果我们需要专门的异常消息,我们将用更具体的内容扩展ObjectNotFoundException,然后更新Spring SimpleMappingExceptionResolver以处理新的、更具体的异常

    我们确保在exceptionMapping列表中保留最常见的异常(ObjectNotFoundException)

    对于服务,我不担心参数是userid还是accountid。这两个参数的行为应该相同。如果您对此感到担忧,那么您的用户界面层正在向服务层和持久性层渗透;这是件坏事