簡體   English   中英

Spring Boot沒有在Jersey的ResourceConfig類中設置@Value屬性

[英]Spring Boot is not setting the @Value property in Jersey's ResourceConfig class

為什么我的Jersey ResourceConfig類中的port成員0在運行時?

Application.property文件:

#web server
server.port=9000

JerseyConfig文件:

@Component
@ApplicationPath(Pathes.APPLICATION_PATH)
public class JerseyConfig extends ResourceConfig {

    @Value("${server.port}")
    private int port;

    public JerseyConfig() {
        final BeanConfig beanConfig = new BeanConfig();
        beanConfig.setVersion("1.0.0");
        beanConfig.setHost("localhost:" + port);
        beanConfig.setBasePath(Pathes.APPLICATION_PATH);
        beanConfig.setResourcePackage(myPackages);
        beanConfig.setScan(true);

        register(ApiListingResource.class);
        register(SwaggerSerializers.class);
    }
}

謝謝你的幫助!

在Spring容器初始化之前,您在構造函數中使用port。 你不能用Spring做到這一點。

改為構造函數注入:

@Component
@ApplicationPath(Pathes.APPLICATION_PATH)
public class JerseyConfig extends ResourceConfig {

    @Autowired
    public JerseyConfig(@Value("${server.port}") int port) {
        final BeanConfig beanConfig = new BeanConfig();
        beanConfig.setVersion("1.0.0");
        beanConfig.setHost("localhost:" + port);
        beanConfig.setBasePath(Pathes.APPLICATION_PATH);
        beanConfig.setResourcePackage(myPackages);
        beanConfig.setScan(true);

        register(ApiListingResource.class);
        register(SwaggerSerializers.class);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM