我正在尝试将此 Google App Engine Maven 服务器存储库重写为 Spring。
我有 URL 映射问题。Maven 回购服务器标准如下所示:
以斜线结尾的 URL 指向一个文件夹,例如:
http://127.0.0.1/testDir/
http://127.0.0.1/testDir/testDir2/
Run Code Online (Sandbox Code Playgroud)所有其他(末尾没有斜线)指向文件,例如:
http://127.0.0.1/testFile.jar
http://127.0.0.1/testFile.jar.sha1
http://127.0.0.1/testDir/testFile2.pom
http://127.0.0.1/testDir/testFile2.pom.md5
Run Code Online (Sandbox Code Playgroud)使用了@javax.ws.rs.Path与 Spring 不同的支持正则表达式的注释。
我尝试了一堆组合,例如这样的:
http://127.0.0.1/testDir/
http://127.0.0.1/testDir/testDir2/
Run Code Online (Sandbox Code Playgroud)
但是我不知道如何在 Spring 应用程序中以正确的方式做到这一点。
我想避免编写自定义 servlet 调度程序。
我有以下基本(界面)结构
@JsonTypeInfo(
use = JsonTypeInfo.Id.NAME,
property = "messageType",
visible = true)
@JsonSubTypes({
@JsonSubTypes.Type(value = AppMessage.class, name = "APP"),
@JsonSubTypes.Type(value = NotificationMessage.class, name = "NOTIFICATION"),
})
public interface Message {
MessageType getMessageType();
Date getTimestamp();
}
Run Code Online (Sandbox Code Playgroud)
该类AppMessage是一个简单的 POJO(目前),例如
public class AppMessage implements Message {
private String appId;
...
private Date timestamp = Date.from(Instant.now());
}
Run Code Online (Sandbox Code Playgroud)
但这NotificationMessage是另一个界面
public class AppMessage implements Message {
private String appId;
...
private Date timestamp = Date.from(Instant.now());
}
Run Code Online (Sandbox Code Playgroud)
当然还有另外两个实现 的pojo asNotificationAckMessage和类。NotificationReqMessageNotificationMessage …