Java 精确URL模式匹配算法

Java 精确URL模式匹配算法,java,Java,我有一个要求,来自RESTWeb服务的URL需要与数据库中的500多个URL匹配,并且用户需要被授权,这取决于他是否有权访问该URL。 比赛应该是最好的,而不是第一场 例如,URL模式如下 /app1/abc/{userId} /app1/pqr/*/text /附件2/* /app2/xyz/{user_id} /附件3/pqr/* 如果请求的URL是/app2/xyz/123,它应该匹配/app2/xyz/{user_id},而不是/app2/* 我正在研究java实现或任何想法。我确实看过

我有一个要求,来自RESTWeb服务的URL需要与数据库中的500多个URL匹配,并且用户需要被授权,这取决于他是否有权访问该URL。 比赛应该是最好的,而不是第一场

例如,URL模式如下

/app1/abc/{userId}

/app1/pqr/*/text

/附件2/*

/app2/xyz/{user_id}

/附件3/pqr/*

如果请求的URL是/app2/xyz/123,它应该匹配/app2/xyz/{user_id},而不是/app2/*


我正在研究java实现或任何想法。我确实看过Aho Corasick算法,但我不确定它是否最适合这种情况

可以尝试使用like查询吗?URL的任何部分都是动态的,您可以跳过,其余部分可以使用like查询获取?我不想使用数据库进行匹配。有几个请求,所以最有可能的URL将在缓存中,我需要一个算法来进行模式匹配如果你使用缓存,我甚至会使用你的Aho-Corasick算法(我不知道名称,但有相同的想法:)。您可以将树存储在内存中并遍历它。但不是一封信。但是整个url部分应该存储在一个节点中。应该是最快的方式。您好,请发布您迄今为止的尝试或想法。StackOverflow不会为您编写整个解决方案。