我有一个项目......我不知道...... 200-300 daos / services / controllers我使用@Autowired
将所有内容连接在一起而不是指定applicationContext.xml
中的所有内容。< / p>
我的问题是,这对我的创业时间有多大影响?是否值得删除所有@Autowired
注释并实际通过applicationContext.xml
手动连接此应用程序?
从架构的角度来看,我喜欢@Autowired
。我不想通过使用xml文件添加另一层复杂性 - 就我而言,它没有增加任何价值。但是如果这种事情在我的容器的加载时间增加10秒,我可能会考虑它。如果成本是100毫秒,那么我将保持原样。
由于
答案 0 :(得分:5)
实际上是一样的。组件扫描有点贵(当你扫描@Service
,@Component
时),但正如你所说,它是启动时 - 它只发生一次。在中等机器上,即使使用注释,它也会很快启动。
一般来说,我不会放弃这种方法只是因为它增加了一点启动时间。而且我可以向你保证这一点并不重要(正在开展比你现在更大的项目)
答案 1 :(得分:4)
@Masterhard在Spring @Autowired usage中有一个有趣的评论:
我们正在大项目中从@Autowire切换回XML配置。问题是非常低的引导性能。自动装配扫描程序从自动装配搜索类路径加载所有类,因此,在Spring初始化期间急切地加载了许多类。
另见例如SPR-6870
然而!使用注释进行自动装配非常方便,在切换回XML之前我会三思而后行。除非启动时间确实是您项目中的一个问题,并且您可以证明它是导致它的CLASSPATH扫描,请保留注释。还要记住,Java EE也会向注释方向发展。
P.S。:解析数千行XML也会带来一些开销。