Как автоматически подключить bean-компонент к другому классу в приложении Spring Boot?

В приложении Spring Boot у меня есть класс, как показано ниже:

@Service
public class XYZ{
}

Я хочу использовать выше в другом классе ABC, например:

public class ABC{

    @Autowired
    private XYZ xyx;

}

Выдает ошибку, что XYZ не может быть найден. У меня уже есть @SpringBootApplication в классе, где написан основной метод. Следовательно, это автоматически включит @ComponentScan в пакете. ABC создается как bean-компонент в файле конфигурации Spring. Насколько я понимаю, поскольку XYZ был помечен @service, Spring сканирует, создает и регистрирует этот bean-компонент. Как я могу получить доступ к этому bean-компоненту в другом классе без использования конфигурации xml?

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
0
2 975
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Как создается экземпляр ABC? Объект ABC должен быть создан Spring.

Другими словами, класс ABC также должен быть чем-то вроде @Component. Он может быть подключен автоматически с помощью @SpringBootApplication или, в случае веб-приложения, это может быть @Controller.

ABC создается как bean-компонент в XML-файле конфигурации Spring

tech_questions 02.11.2018 14:30

Как вы используете ABC после того, как он был создан как bean-компонент?

uli 02.11.2018 14:31

ABC - слушатель событий

tech_questions 02.11.2018 14:31

В дополнение к тому, что @Sharon Ben Asher сказал выше: На всякий случай, если ошибка возникает во время выполнения теста и если тестовый контекст использует что-либо, кроме @SpringBootTest, тогда есть шанс, что этот контекст не будет сканировать bean-компоненты аннотации @Service.

Например, тестовый класс, помеченный @DataJpaTest, не будет сканировать компоненты @Service; для его анализа требуется явный @ComponentScan. Подробности об образцах сниппетов можно найти здесь https://stackoverflow.com/a/52939210/5107365.

Другие вопросы по теме