将<context:component-scan>应用于Spring MVC (3.0)应用程序中的每个软件包是一种不好的做法吗?



这样做是否可以,因为它将包括应用程序中用于组件扫描的所有包和子包?

<context:annotation-config />
<context:component-scan base-package="rootpackage" />

或者有选择扫描哪些包的原因吗?

<context:annotation-config />
<context:component-scan base-package="rootpackage.abc" />
<context:component-scan base-package="rootpackage.def" />
<!--<context:component-scan base-package="rootpackage.ghi" /> --> Omit? Why?

为什么要从扫描中省略包呢?

是的,这是不好的做法。

如果组件可以出现在任何包中,那么源代码库的读者需要在每个类中搜索Spring注释,而不是只在"组件"包和"控制器"包中查找。

另外,您不应该在包结构中分散使用Spring组件。将类分组到有意义的包中,并且只公开这些包。

如果您有几个配置,那么选择是有意义的。例如dispatcher-servlet.xmlapplicationContext-common-business.xmlapplicationContext-security.xml

相关内容

最新更新