Аннотация @Value не работает в моем сервисе - PullRequest
0 голосов
/ 04 июня 2019

У меня есть моя основная конфигурация

    @EnableScheduling
    @Configuration
    @EnableWebMvc
    @ComponentScan(basePackages = { "gr.citystore.web.helios.yeastar" })
    @PropertySource(value = { "classpath:application.properties" })
    public class HelloWorldConfiguration extends WebMvcConfigurerAdapter {

        @Autowired
        private MyServiceImpl myService;

        @EventListener(ContextRefreshedEvent.class)
        public void contextRefreshedEvent() {
            MyThread mThread = new MyThread(myService);
        }
}

И код моей службы:

@Service("myService")
@PropertySource(value = { "classpath:application.properties" })
public class MyServiceImpl implements MyService{

    @Value("${property.api.ip}")
    private String apiIP;
    @Value("${property.api.port}")
    private String apiPort;

    public String myMethod() {

    }

} 

Моя проблема в том, что аннотация @Value не работает, когда я передаю ее в качестве аргументав myThread вместо этого возвращается «$ {property.api.port}».Чего мне здесь не хватает?

РЕДАКТИРОВАТЬ: расположение файла application.properties - "src / main / resources", а содержимое:

property.api.ip = 12.34.50.30
property.api.port = 50034

1 Ответ

0 голосов
/ 04 июня 2019

Вы можете просто вставить значения application.properties в ваш класс следующим образом:

@Service("myService")
public class MyServiceImpl implements MyService{

    private final String apiIP;

    private final String apiPort;

    public MyServiceImpl(@Value("${property.api.ip}") String apiIP,
              @Value("${property.api.port}") apiPort) {
         this.apiIP = apiIP;
         this.apiPort = apiPort;
    }

    public String myMethod() {

    }

} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...