Как убедиться, что <context: annotation-config /> установлен в классах в зависимости от этого? - PullRequest
2 голосов
/ 13 июля 2011

Spring предоставляет приятную функцию, которая позволяет программисту определять аннотации в исходном коде Java для установки @Value("systemProp:defaultvalue") и других внедренных зависимостей.

Тем не менее, в некоторых случаях мы можем забыть включить <context:annotation-config/> в смешанной программе XML и подпружиненной аннотации.

Есть ли способ, вспомогательный метод или шаблон, который нужно добавить в класс java для принудительного применения <context:annotation-config/>, не забыт?

1 Ответ

3 голосов
/ 13 июля 2011

Напишите тестовый пример, который не пройден, если <context:anotation-config/> не настроен правильно.


Если вы действительно хотите проверить, работает ли он, определите значение по умолчанию и введите это значение по умолчанию. Затем необходимо проверить это в конструкторе, например. открытый класс Demo () {

  @Value("default");
  private String check;

  public Demo() {
     assert "default".equals(check) : "It seams that anntation-config is not enabled";
  }
}

Не работает, потому что значение вставленопосле вызова конструктора.

Если поддерживается @Autowired, вы можете использовать все это отдельным способом:

public class Demo2 {   

    @Autowired
    public void checkAnnotationConfigEnabled(
                          @Value("default") String check) {
        assert "default".equals(check);
    }
}

Если ваша проблема не в том, что вам нужно включитьanntation-config для каждого класса было бы достаточно иметь один компонент, который реализует эту логику проверки.Если нет, и вы не хотите помещать эти строки в каждый класс, то вы можете сделать это с помощью уменьшений интертипа AspectJ.

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