Spring Boot Component Scan - PullRequest
       2

Spring Boot Component Scan

0 голосов
/ 09 июня 2019

Я пишу новый весенний загрузочный проект, в котором имя моего корневого пакета "com.example" . В моей конфигурации gradle я добавляю зависимость от сторонней библиотеки с именем корневого пакета как "org.base" . Теперь в этой библиотеке есть классы с аннотацией @Component, которые я хочу использовать в своем коде, используя @ Autowired

В моем классе Config я также сканирую базовый пакет сторонней библиотеки.

@Configuration
@ComponentScan({"org.base", "com.example"})
public class ServiceConfig{...}

Когда я запускаю приложение, Spring не может найти / создать bean-компоненты из этой библиотеки, и я получаю сообщение об ошибке bean be found.

Чтобы компонент Component Scan работал, должен ли корневой пакет быть таким же?

Сведения об ошибке: UserService требуется компонент типа 'org.base.util.CommonUtils', который не может быть найден.

UserService - мой сервис

Ответы [ 2 ]

0 голосов
/ 09 июня 2019

У проблемы не было надлежащих аннотаций. Я наконец исправил это как показано ниже

@Component
public Class UserService {
    @Autowired
    @Lazy
    private CommonUtils commonUtils;
}

Мне пришлось использовать аннотации @Lazy для зависимостей от сторонней библиотеки. Во время активной инициализации Spring не смог найти bean-компонент зависимости.

0 голосов
/ 09 июня 2019

@ComponentScan будет работать только в том случае, если классы аннотированы с помощью весенних аннотаций, таких как @Component или @Service и т. Д. Как это можно исправить, это использовать декларативный подход, используйте @Bean для класса, аннотированный @Configurationисправит эту проблему.

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