【发布时间】:2015-01-31 00:04:03
【问题描述】:
Spring 的 @ComponentScan 提供了一个类型安全的 basePackageClasses 属性 - 使用起来似乎是一件好事,尤其是在我正在处理的项目中重命名包的情况并不少见。文档说:
考虑在每个包中创建一个特殊的无操作标记类或接口,除了被此属性引用之外没有其他用途。
...但没有提供关于此类名称的进一步指导。我想知道这方面是否有任何约定。 package-info.java 已经存在于所有包中(由 Checkstyle 强制执行) - 本来希望重用它,但遗憾的是 Java 不允许使用此名称的类。
(如果不存在这样的标准,我想可能是PackageInfo、BasePackage、PackageMarker 或类似标准,但如果有,我更愿意遵循约定。)
【问题讨论】:
-
我觉得这是基于意见的。例如,我通常会将我的
@Controller类型存储在一个包中,因此我将在Controllers.java中命名相应的类或接口Controllers。 -
同意这可能涉及意见,但希望有人能够指出我的标准或广泛使用的方法的证据。
-
它很有用,因为它是类型安全的——指定了一个类而不是一个字符串,所以如果包名要改变也没关系。
-
这似乎主要是意见,尽管您可以改写(也许要求最佳实践)。不过,我认为没有任何标准。
-
好的,以为问题已经给出了要点,但稍微改写了最后一句并用括号括起来以使这一点更清楚。
标签: java spring dependency-injection convention component-scan