приложение для весенней загрузки (зависит от профиля) .properties возвращает значение NULL - PullRequest
0 голосов
/ 06 июня 2018

Я пытаюсь загрузить значения файла свойств конкретного профиля с помощью springboot в мой класс @webservice.Я выполнил следующие шаги:

1)

created application.properties with profile to be active
spring.profiles.active=dev

2)

Created application-dev.properties with following values
username = XXXXXXX
password = XXXXXXX
host = XXXXXXX
port = XXXXXXX
welcome.message = Development

3)

 Created @Springbootapplication class

4)

Created @configuration class for appconfig

5) Началось чтение значений application-dev.properties в классе appconfig с использованием

кода:

public class AppConfig {
@Value("${welcome.message}")
 private String welcomeMsg;
 @Profile("dev")
@Bean
public MessageSource messageSourceDev() {
System.out.println("****Dev Profile called*****"+welcomeMsg);

при запуске из набора инструментов Spring для первогоприветственное сообщение о времени успешно распечатано в консоли.

"Профиль разработки **** вызван ***** Development"

Но когда я пытаюсь прочитать значения свойств из класса @webservice Iс помощью мыльного интерфейса пользователя

Код:

@WebService(serviceName = "SampleIF", endpointInterface   = "com.tc.services.sample.cxf.SampleIF")
public class SampleIFImpl implements SampleIF {
@Value("${welcome.message}")
private String welcomeMsg;
    @Override
public Contact CreateContract(Details details) {
    System.out.println("****Welcome Message Val*****"+welcomeMsg);

Либо происходит сбой в appconfig.class, вызывая следующее исключение

1)

   org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'appConfig': Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'welcome.message' in value "${welcome.message}"
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:379)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1348)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:578)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:501)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:317)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:760)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:869)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:550)
at org.springframework.context.annotation.AnnotationConfigApplicationContext.<init>(AnnotationConfigApplicationContext.java:88)

2) Или класс @webservice со значением NULL

Пожалуйста, помогите мне решить проблему.

Ответы [ 2 ]

0 голосов
/ 06 июня 2018

Я воспроизвел сценарий, но внес некоторые изменения в реализацию

, это мое application.yml

spring:
  profiles:
    active:
    - dev

И это мое приложение-dev.yml

welcome:
  message: Development

Наконец, я использую переменную непосредственно из класса, где требуется значение

@Value("${welcome.message}")
private String welcomeMsg;
0 голосов
/ 06 июня 2018

Я думаю, вам следует добавить @PropertySource ("classpath: application-dev.properties") в класс AppConfig.

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