Как Spring-Boot понимает, что в этом примере не нужно создавать более одного компонента? - PullRequest
0 голосов
/ 13 мая 2019

Обратите внимание:

Проект A

com.mycompany
 - SpringBootApp.java

@SpringBootApplication
@Import(MyConf.class)
public class SpringBootApp {

    public static void main(String[] args) {
        SpringApplication.run(SpringBootApp.class, args);
    }

}

Проект B

com.mycompany.projectB
- MyConf.java
com.mycompany.projectB.beans
- Bean1.java
- Bean2.java

, где Bean1.javaи Bean2.java являются @Component аннотированными классами.и Context.java имеет содержимое:

@Configuration
@ComponentScan
public class MyConf {

}

Теперь Bean1 и Bean2 могут участвовать в контексте приложения по следующим причинам:

  1. SpringBootApp.java определено вболее высокий уровень иерархии путей
  2. MyConf.java определен на более высоком уровне иерархии путей и будет автоматически импортирован в ProjectA из-за точки 1
  3. Я явно импортирую контекст проекта B изprojectA @Import(MyConf.class)

Мой вопрос:
Как весенняя загрузка понимает, что я действительно хочу, это всего лишь один экземпляр класса и как этого избежатьисключение, такое как повторяющееся определение бина?
Спасибо за ваше время.

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