ApplicationReadyEvent не прослушивается при объявлении @ComponentScan для пакета библиотеки

#spring #spring-boot

#spring #spring-загрузка

Вопрос:

 @componentscan({"com.test.cloud"})
@SpringBootApplication
public class TestClass {

public static void main(String[] args) {
    ApplicationContext context = SpringApplication.run(TestClass.class, args);
}
}

public class TestClass2{

@eventlistener(ApplicationReadyEvent.class)
public void testMethod() {
.....
.....
}
}
  

Здесь, если я удалю аннотацию @componentscan({«com.test.cloud»}), тогда запускается метод тестирования. Но когда я использую @componentscan({«com.test.cloud»}), метод тестирования не запускается.

Версия SpringBoot: 1.5.10.RELEASE

Комментарии:

1. Какова структура вашего проекта? В каком пакете TestClass находится?

2. TestClass и TestClass2 находятся в одном базовом пакете. например, com.example.demo, но com.test.cloud — это внешняя библиотека, добавленная зависимостью.

3. @ComponentScan Переопределяет другой пакет, вам нужно добавить оба пакета в сканирование или определить пакет верхнего уровня, подобный com.test .

4. Итак, у вас должно быть что-то вроде @componentscan({"com.test.cloud","com.example.demo"})

Ответ №1:

Работал, добавив:

@componentscan({«com.test.cloud»,»com.example.demo»})