Не удалось установить значение с помощью application.properties - PullRequest
0 голосов
/ 19 мая 2019

Я пытаюсь очень простой код ввести значение из application.properties. В качестве значения указывается имя свойства.

Что не так с кодом?

application.properties

set.browser = ie
    public class A {

        @Value("${set.browser}")
        private String browser;

        public A(){}

        public void print(){
            System.out.println(browser);
        }
    }

    @Configuration
    public class ABean {
        @Bean
        public A getA(){
            return new A();
        }
    }

    public class AMain {
        public static void main(String[] args) {
            AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(A.class);

            A a = context.getBean(A.class);
            a.print();

        }
    }

1 Ответ

0 голосов
/ 19 мая 2019

Прежде всего, ваше приложение не является приложением весенней загрузки - вы просто создали контекст Spring даже без сканирования компонентов. Во-вторых, из-за отсутствия сканирования компонентов ваш ABean никогда не создается - в вашем контексте есть только A bean. Чтобы это исправить, вы можете создать контекст из ABean:

AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(ABean.class);

В-третьих, вы не настроили PropertySource (если ваше приложение было приложением с весенней загрузкой, application.properties было бы источником свойств по умолчанию и в этом не было бы необходимости):

@PropertySource("classpath:/application.properties")
@Configuration
class ABean {
  @Bean
  public A getA() {
    return new A();
  }

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