удалите autowire из контроллера и замените его нормальной инициализацией - PullRequest
0 голосов
/ 04 апреля 2019

Мои текущие коды содержат @autowired, но я хотел бы удалить его, а затем инициализировать с помощью кода.Пожалуйста, проголосуйте за мои вопросы, если вам было трудно это понять, но ПОЖАЛУЙСТА, по крайней мере, прокомментируйте, чтобы я мог отредактировать, так как я новичок в этом материале аннотаций и все еще промокаю его руками.

Ниже показан мой код, и из того, что я могу понять об автопроводке, это то, что он берет значения из класса "Test" и связывает их с тестированием.Что делать, если я удалю этот @autowired из кода?Как я могу все еще сделать это исполняемым?Я имею в виду, если я удаляю @autowired, как я могу по-прежнему инициализировать значения в этой же строке вместо использования аннотации проводки?- Причина, по которой я хотел попробовать это, состоит в том, чтобы увидеть мое понимание и в то же время увидеть больше разных примеров, чтобы улучшить мое понимание

 @Autowired
  @Qualifier("testing")
  Test testing;

Я не ожидал результатов, потому что я просто хочу понять аннотации и посмотреть,мое понимание верно.

1 Ответ

0 голосов
/ 04 апреля 2019

Существует три способа внедрения зависимостей с автопроводкой (с использованием пружины) в бин:

  1. Автоподключение самого поля

    @Autowired
    private Test test;
    
    @Autowired
    private SomethingService somethingService;
    
  2. Автоматическое подключение установщика

    private Test test;
    private SomethingService somethingService;
    
    @Autowired
    public void setTest(Test test) {
        this.test = test;
    }
    
    @Autowired
    public void setSomethingService(SomethingService somethingService) {
        this.somethingService = somethingService;
    }
    
  3. Автоматическое подключение конструктора (для которого не требуется аннотация):

    public class Something {
    
        private Test test;
        private SomethingService somethingService;
    
        public Something(Test test, SomethingService somethingService) {
            this.test = test;
            this.somethingService = somethingService;
        }
    
        ...
    }
    

Преимущество:Третий подход заключается в том, что когда вы создаете экземпляр класса для тестирования, вы можете передать любые реализации, которые вы хотите для зависимостей.

...