如您所知,注释驱动编程越来越多地融入到我们现在使用的大多数框架中(即 Spring、Lombok 等)。
此外,我们有时需要创建自定义注释。 (例如,使用切面记录给定类的所有公共方法的进入/退出跟踪 -@LogAroundMethods
)
因此,给定的类可以包含大量注释。
@LogAroundMethod // My custom annotation
@Slf4j // Lombok annotation
@Component // Spring annotation
public class ClientNotificationProxy {
//Code
}
@LogAroundMethod // My custom annotation
@Configuration // Spring annotation
@ConditionalOnClass(NotificationSender.class) // Spring annotation
@EnableConfigurationProperties(MessagingProperties.class) // Spring annotation
@Import({ MongoConfiguration.class, SpringRetryConfiguration.class }) // Spring annotation
public class StarterClientAutoConfiguration {
// Code
}
- 建议的注释顺序是什么?
- 特定订单是否有任何影响或好处?
几乎所有情况下答案都是不,该命令没有任何作用。
但实际上情况有点复杂。
考虑到注释处理器处理的注释,其他答案中已经指出,它更多地取决于处理器运行的顺序。但是,处理器可以访问 AST,这使它们能够确定源代码中注释的顺序。因此,理论上注释处理器可以使生成的代码依赖于顺序,但我不知道这方面的任何示例,并且认为这是不好的做法。
在运行时获取元素的注释时,您还可以访问顺序。The docs了解有关如何确定订单的更多信息。同样,实现可以使其行为依赖于顺序。
我再次考虑这种不好的做法。唯一的例外可能是可重复的注释,我可以想到这是合理的用例。
如果对注释的顺序有任何依赖(这种情况不太可能发生),那么应该在注释的 JavaDoc 中非常清楚地说明这一点。
因此,通常您可以随意订购。我不知道有关注释顺序的任何样式指南,因此只需使其对您来说合理即可。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)