gpt4 book ai didi

java - 在 Spring 中创建 URL 的最佳方法

转载 作者:行者123 更新时间:2023-12-01 04:29:52 24 4
gpt4 key购买 nike

假设我们有带有 URL 映射的 Controller ,例如 movie/{id}-{title}actor/{id}-{name} 等。这些映射识别我们应用程序中的一些对象,主要是实体 - 我们可以说它是一个 RESTful 服务。

我正在寻找一个解决方案,以了解应该将负责创建这些 URI 的方法放在哪里。我认为在多个 JSP 文件和其他一些地方(重定向等)创建它们是多余的。

首先,我想到的是使用方法 public URI getURI() 创建一些接口(interface),将在 Controller 中使用的类将实现该接口(interface)。但是,在我看来,这会涉及太多实体 - 我更喜欢实体仅代表数据并仅包含更改状态的方法。

我的第二个想法是创建一个带有重载方法的URIService,例如URI getURI(Movie m)URI getURI(Actor a),但编译时重载方法的选择会出现问题。例如,在 JSP 中的 EL 中,这不会很好地工作,因为解决方案将以不同的方式命名方法。

我不想重新发明轮子,所以也许你知道或使用一些解决方案来解决这个问题?

最佳答案

您希望解决方案有多进取? (我只是半开玩笑)

这里有一个解决方案:拥有一个具有 URI getURI(Object o) 之类的方法的服务。此方法将检查传递的对象是否属于带有指定 URI 路径的注释的类。注释示例:

public @interface PathTemplate {String value();}

带有注释的示例类:

@PathTemplate("/movie/{title}-{id}")
public class Movie {
private int id;private String title;
// getters and setters too
}

现在,getURI 方法将看到参数对象的类具有 PathTemplate 注释,并将使用 bean 自省(introspection)来插入参数。瞧!可扩展且相对解耦的 URI 生成。

关于java - 在 Spring 中创建 URL 的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18088708/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com