java—在spring引导应用程序中使用jax rs rest api作为库

ukxgm1gy  于 2021-08-20  发布在  Java
关注(0)|答案(1)|浏览(361)

关闭。这个问题需要更加关注。它目前不接受答案。
**想改进这个问题吗?**编辑这篇文章,更新这个问题,使它只关注一个问题。

16小时前关门。
改进这个问题
我正在进行一个SpringBoot数字签名项目,我想使用经典的SpringWeb语法创建一些rest控制器( @RestController , @XMapping 等)。在寻找一些库来执行签名工作时,我发现了这一个,其中包括使用jax-rs规范制作的working-rest控制器。因此,我认为只要在我的应用程序中公开它们,就可以用尽可能少的代码完成这项工作。起初,我想自己创建控制器,并将工作委托给lib,但当我发现这些已经存在的控制器时,我想我甚至可以跳过它,将代码保持在非常小的范围内。
我通过添加 org.springframework.boot:spring-boot-starter-jersey 并在jersey的 ResourceConfig . 但我认为这可能与 org.springframework.boot:spring-boot-starter-web 和/或 org.springframework.boot:spring-boot-starter-data-rest 因为一旦库中的jax-rsapi变得可调用,那么 data-rest 从中自动创建 @Repository 班级消失了。
我一直在寻找一种在SpringBoot中将这两个东西集成在一起的方法,但我不确定这是否可能,或者是一个好主意。老实说,我并不介意用jax-rs规范对控制器进行编码,我过去曾使用过它,我也很喜欢它。我不想失去的是自动创建的控制器 @Repositoryspring-data-rest 是的,因为我真的很喜欢这个功能。
我是在尝试一些真正愚蠢的事情,还是有办法做到这一点?

wfypjpf4

wfypjpf41#

您可以在同一类型上使用jersey和spring mvc,但需要配置jersey以允许您这样做。
首先,jersey应该配置为作为过滤器而不是servlet工作。要执行此操作,请设置 spring.jersey.typefilter 在你的 application.properties 文件
其次,jersey必须配置为转发它自己无法处理的请求。这允许请求到达spring mvc的 DispatcherServlet 从那里它将被分派到您的spring mvc控制器、spring数据rest端点等 FILTER_FORWARD_ON_404 你的财产 ResourceConfig :

@Component
public class JerseyConfig extends ResourceConfig {

    public JerseyConfig() {
        // Endpoint registrations
        property(ServletProperties.FILTER_FORWARD_ON_404, true);
    }

}

相关问题