Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SpringJavaConfig是否避免了组件扫描&;改善启动时间?_Java_Spring - Fatal编程技术网

SpringJavaConfig是否避免了组件扫描&;改善启动时间?

SpringJavaConfig是否避免了组件扫描&;改善启动时间?,java,spring,Java,Spring,Spring需要大约5到10秒来自行配置,我使用XML作为基础架构bean,并使用带有注释的组件扫描其他所有内容 SpringJavaConfig是否消除了组件扫描的需要以及自动连线bean的所有类型反射?有人看到过JavaConfig在启动时间上的改进吗 我主要关心的是加速集成测试 如果您继续使用,显然您不会看到任何改进,因为会发生相同的扫描,您只是使用不同的格式启用它 另一方面,如果您使用@Bean注释定义所有Bean,并通过调用其他@Bean方法手动执行连接,那么,您将避免组件扫描成本,但

Spring需要大约5到10秒来自行配置,我使用XML作为基础架构bean,并使用带有注释的组件扫描其他所有内容

SpringJavaConfig是否消除了组件扫描的需要以及自动连线bean的所有类型反射?有人看到过JavaConfig在启动时间上的改进吗

我主要关心的是加速集成测试

如果您继续使用,显然您不会看到任何改进,因为会发生相同的扫描,您只是使用不同的格式启用它

另一方面,如果您使用
@Bean
注释定义所有Bean,并通过调用其他
@Bean
方法手动执行连接,那么,您将避免组件扫描成本,但这将使您回到90年代,除了您将XML换成Java(某种改进)。还要记住,Java配置也有一些成本。每个
@Configuration
类都需要CGLIB代理,原因超出了本问题的范围

我通常所做的是对基础结构Bean(我无法控制)使用
@Bean
,对其他所有内容使用
@ComponentScan
。您确定是组件扫描导致延迟,而不是休眠或其他第三方库启动时间吗?如果是扫描,那么,您是在用启动时间换取开发人员的舒适度(无需手动声明/连接所有内容)

当然,有一些方法可以减少组件扫描时间,主要是仔细过滤包/类名,以便只扫描相关的类