2016-03-22 3 views
4

Почему мой член порта 0 в моем классе ResourceConfig в Джерси?Spring Boot не устанавливает свойство @Value в классе ResourceConfig от Джерси

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); 
    } 
} 

Спасибо за вашу помощь!

+0

https://github.com/dsyer/spring-boot-jersey –

+0

Можете ли вы поделиться, как ваши свойства зарегистрировано в XML? –

+0

В весеннем загрузочном файле отсутствует файл конфигурации XML. Я использую файл application.properties, который загружается при загрузке самостоятельно. – Chrisposure

ответ

5

Вы используете конструктор портов, прежде чем он инициализируется весенним контейнером. Вы не можете сделать это с помощью Spring.

инъекции конструктор Do вместо:

@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); 
    } 
} 
+0

Спасибо! Это оно! – Chrisposure

Смежные вопросы