Могу ли я использовать другое имя переменной с @resouce - PullRequest
0 голосов
/ 16 января 2019

Это может быть очень простой вопрос, но с NPE, поэтому убедитесь, что

мне нужно использовать одно и то же имя ресурса для переменной или может отличаться при вводе?

@Resource(name='foo')
private X foo;

или может быть

@Resource(name='foo')

private X fooxx;

я использую второй случай, когда имя экземпляра отличается от имени ресурса, но получаю NPE

1 Ответ

0 голосов
/ 16 января 2019

Комментарий правильный, это должно сработать .... убедитесь, что типы верны, но проблема, вероятно, в другом. Согласно документам Spring на @ Resource ...

3.9.5 @Resource Spring также поддерживает внедрение с использованием аннотации JSR-250 @Resource для полей или методов установки свойств бина. Это общий шаблон в Java EE 5 и 6, например, в управляемых компонентах JSF 1.2 или конечных точках JAX-WS 2.0. Spring поддерживает этот шаблон и для объектов, управляемых Spring.
@Resource принимает атрибут name, и по умолчанию Spring интерпретирует это значение как имя bean-компонента, которое нужно ввести. Другими словами, это следует за семантикой имени, как продемонстрировано в этом примере:

public class SimpleMovieLister {

  private MovieFinder movieFinder;

  @Resource(name="myMovieFinder")
  public void setMovieFinder(MovieFinder movieFinder) {
      this.movieFinder = movieFinder;
  }
}

Если имя не указано явно, имя по умолчанию выводится из имени поля или метода установки. В случае поля оно принимает имя поля; в случае метода установки он принимает имя свойства компонента. Таким образом, в следующем примере bean-компонент с именем movieFinder будет внедрен в его метод установки:

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