Java 导入其他Spring引导应用程序而不使用其bean
我想使用另一个spring boot应用程序中的一些类。如何在不加载应用程序中的所有bean的情况下导入它们。@ComponentScan注释负责自动加载标有@Component或其派生注释的任何类。此注释具有各种选项来过滤加载的bean 如果导入的应用程序的父包与主应用程序的父包不同,只需将basePackages选项设置为特定的父包 例如,假设您的主应用程序有com.example.main包,而导入的应用程序有com.example.imported包,您可以放入: @ComponentScanbasePackages={com.example.main} 这将只导入在主应用程序包下定义的bean 如果这还不够,还可以对同一注释使用excludeFilters选项 @组件排除过滤器={ @ComponentScan.Filtertype=Filtertype.ASSIGNABLE\u类型,值=Imported.class }Java 导入其他Spring引导应用程序而不使用其bean,java,spring,spring-boot,Java,Spring,Spring Boot,我想使用另一个spring boot应用程序中的一些类。如何在不加载应用程序中的所有bean的情况下导入它们。@ComponentScan注释负责自动加载标有@Component或其派生注释的任何类。此注释具有各种选项来过滤加载的bean 如果导入的应用程序的父包与主应用程序的父包不同,只需将basePackages选项设置为特定的父包 例如,假设您的主应用程序有com.example.main包,而导入的应用程序有com.example.imported包,您可以放入: @ComponentS
您还可以将这两个选项组合起来进行更具体的筛选 @metacube答案可能就足够了。但另一个非常简单的方法是使用@ComponentScanbasePackageClasses={BeansToExport.class,MoreBeansToExport.class,…}-示例:
@Configuration
public class BeansToExport {
@Bean
public ServiceClass serviceClassBean(){
return new ServiceClass();
}
@Bean
public RespositoryClass repositoryClassBean(){
return new RepositoryClass();
}
}
我称之为包容性战略,而@metacube的例子则是排他性战略。两者都有各自的用途