Witam.

Chciałbym zmienić domyślny mechanizm nazywania beanów w Spring Boot. Chodzi mi o te beany, które są tworzone z deklaracji klasy i adnotacji @Component.
W moim projekcie mam kilka klas o tej samej nazwie w różnych pakietach ze względu na wersjonowanie. Chcę, aby nowy mechanizm nazywania beanów dodawał do domyślnej nazwy beana nazwę pakietu klasy, na podstawie której powstał bean.

Jak dotąd udało mi się znaleźć rozwiązanie polegające na skorzystaniu ze SpringApplicationBuilder i BeanNameGenerator w rozruchowej funkcji main:

 public static void main(String[] args) {
        new SpringApplicationBuilder(Application.class)
                .beanNameGenerator(customBeanNameGenerator)
                .run(args);
    }

Wszystko pięknie, jednak to nie działa w przypadku "testów integracyjnych" uruchamianych w JUnit z Runnerem SpringRunner i z adnotacją @SpringBootTest, czyli tych, które odtwarzają kontekst Springa.

Jak zmienić domyślną strategię nazywania beanów w Spring Boot, tak aby automatycznie stosowałyby ją także Springowe testy integracyjne?

EDIT 11.03.2018.

Już dostałem odpowiedź na moje pytanie na stackoverflow.com: SpringApplicationBuilder is not loaded during integration tests with JUnit SpringRunner