代码:
import org.springframework.boot.autoconfigure.AutoConfigurationExcludeFilter;
import org.springframework.boot.context.TypeExcludeFilter;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.FilterType;
import org.springframework.context.annotation.ComponentScan.Filter;
@Configuration(
proxyBeanMethods = false
)
@ComponentScan(
basePackages = {"com.etoak"},
excludeFilters = {@Filter(
type = FilterType.CUSTOM,
classes = {PackageExcludeFilter.class}
), @Filter(
type = FilterType.CUSTOM,
classes = {TypeExcludeFilter.class}
), @Filter(
type = FilterType.CUSTOM,
classes = {AutoConfigurationExcludeFilter.class}
)}
)
public class PackageScanConfiguration {
public PackageScanConfiguration() {
}
}
启动类中使用:
@SpringBootApplication(
scanBasePackages = {},
exclude = {JpaRepositoriesAutoConfiguration.class}
)
@Import({PackageScanConfiguration.class})
public class AppBootstrap {
private static Boolean parallel = false;
public AppBootstrap() {}
public static void main(String[] args) {
SpringApplication springApplication = new SpringApplication(new Class[]{AppBootstrap.class});
}
}
这段代码展示了如何在SpringBoot应用中自定义@ComponentScan,排除特定的过滤器,如PackageExcludeFilter,TypeExcludeFilter和AutoConfigurationExcludeFilter。同时在启动类中,通过@Import引入了PackageScanConfiguration,并且在@SpringBootApplication中排除了JpaRepositoriesAutoConfiguration的自动配置。
424

被折叠的 条评论
为什么被折叠?



