gpt4 book ai didi

java - 如何使用 java @Configuration Spring 配置以过滤模式运行 jersey

转载 作者:行者123 更新时间:2023-12-02 09:36:53 25 4
gpt4 key购买 nike

您好,我在 application.properties 中有条目:

spring.jersey.type=filter

这允许我在过滤器模式下使用 spring 运行 jersey,并且因此我可以共享 API 资源和静态内容,例如主页或 swagger 文档。

我知道,对于这项服务,我将始终以这种方式穿着这件 Jersey 。所以它永远不会改变。我想使用 java 来配置它,比如 f.e.:这里:

import org.glassfish.jersey.server.ResourceConfig;
import org.glassfish.jersey.servlet.ServletProperties;
import org.springframework.context.annotation.Configuration;

@Configuration
public class JerseyConfig extends ResourceConfig {

public JerseyConfig() {
// scan the resources package for our resources
packages(getClass().getPackage().getName() + ".resources");
property(ServletProperties.FILTER_FORWARD_ON_404, true);
}
}

是否可以使用java代码表达此属性条目:spring.jersey.type=filter?我想保留 application.properties 仅用于真实环境的基础配置。 Jersey 过滤模式永远不会改变。

spring.jersey.type=filter 是 spring 配置,而不是 jersey

我检查了这些 jetty :https://docs.spring.io/spring-boot/docs/1.2.2.RELEASE/reference/html/boot-features-developing-web-applications.html关于注册使用过滤器,但失败了。

最佳答案

基本上,您已经拥有的 application.properties 就是到这里的方法,IMO,这是一种“直接”的 spring-boot 配置方式。

您可以将此文件放入 src/main/resourcessrc/main/resources/config (如果您在外部运行它,它会选择它。

现在,如果你真的想用 java 来做这件事,这里有几种方法:

选项 1:

@SpringBootApplication
public class MyApp{

public static void main(String[] args){
SpringApplication application = new SpringApplication(MyApp.class);

Properties properties = new Properties();
properties.put("spring.jersey.type", "filter");
application.setDefaultProperties(properties);

application.run(args);
}
}

选项 2

创建org.springframework.boot.env.EnvironmentPostProcessor并在META-INF/spring.factories中注册:该环境后处理器的接口(interface)允许添加属性。

此类后处理器的示例可以在 Here 中找到。

选项 3

按照惯例,除了常规配置文件(开发、产品或任何您拥有的配置文件)之外,决定您的所有服务都将运行“jersey”配置文件

然后你可以创建application-jersey.properties,只要你指定jersey配置文件(--spring.profiles.active=dev, Jersey )或以编程方式

@SpringBootApplication
public class MyApp
public static void main(String[] args) {
SpringApplication app = new SpringApplication(MyApp.class);
app.setAdditionalProfiles("jersey");
app.run(args);
}
}

关于java - 如何使用 java @Configuration Spring 配置以过滤模式运行 jersey,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57437182/

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