Обратите внимание:
Проект 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 могут участвовать в контексте приложения по следующим причинам:
SpringBootApp.java
определено вболее высокий уровень иерархии путей MyConf.java
определен на более высоком уровне иерархии путей и будет автоматически импортирован в ProjectA из-за точки 1 - Я явно импортирую контекст проекта B изprojectA
@Import(MyConf.class)
Мой вопрос:
Как весенняя загрузка понимает, что я действительно хочу, это всего лишь один экземпляр класса и как этого избежатьисключение, такое как повторяющееся определение бина?
Спасибо за ваше время.