Я пытаюсь создать новый стартер. У меня есть бизнес-модуль, например ProjectManager, который содержит некоторые классы, аннотированные с помощью @Component. После учебника я создал модуль автоконфигурации, он содержит класс AutoConfiguration. Во-первых, я попытался использовать @ComponentSan для поиска компонентов в моем бизнес-модуле.@ComponentScan не работает в Spring загрузочный класс AutoConfiguration?
@ComponentScan(value = {"com.foo.project"})
@ConditionalOnClass({Project.class})
@Configuration
public class ProjectAutoConfiguration {
....
}
Но это не сработает. Я должен добавить дополнительный класс конфигурации, как показано ниже:
@Configuration
@ComponentScan(value = {"com.foo.project"})
@MapperScan(value = {"com.foo.project"})
public class ProjectConfig {
}
А затем импортировать его в класс автонастройки, как показано ниже:
@Import(ProjectConfig.class)
@ConditionalOnClass({Project.class})
@Configuration
public class ProjectAutoConfiguration {
....
}
Это работает. Но по весне doc.
автонастройки осуществляется с помощью стандартных @Configuration классов
Так что мой вопрос, почему @ComponentScan здесь не работает? Я сделал что-то не так? Или это по дизайну?
Вы имеете в виду, класс с основным методом? – Dongqing
есть. отредактируйте свой основной класс следующим образом. – emoleumassi
Он действительно работает, чтобы добавить его в основной класс. Итак, вы имеете в виду, что @ComponentScan работает только с основным классом весенней загрузки? – Dongqing