不鼓励扩展基于spring的接口,因为它不必要地将代码与Spring耦合。同样的推理也适用于注释吗?我们需要在使用它们之前在源代码中导入它们。
答案 0 :(得分:2)
大多数人认为这不是。虽然您已导入了确保Spring处理请求或包装事务所需的注释,但您并未扩展或实现特定的类或接口。
以这种方式思考,当你注释那个类时,你告诉Spring根据你的配置做各种事情。取出那些注释,你拥有的是一个只有一些方法的POJO。它是一个没有这些注释的完全有效的对象,它可能不会按照您的意愿执行(即处理请求),但代码仍然执行与注释相同的逻辑 - 您现在只负责调用它
答案 1 :(得分:2)
我将采取相反的观点 - 当然使用特定于Spring的注释将类与Spring联系起来。我声称导入和使用Spring注释将代码绑定到Spring是不言而喻的(尽管您可以轻松地为非Spring环境重新定义这些注释)。对我而言,关键在于深深地它与Spring有什么联系。
检查和处理注释比重构类层次结构或复制非标记接口的功能更容易。假设你想要留下注释,并且可以复制注释背后的逻辑,那么(IMO)比重新创建实现类似功能的任何类/接口层次更容易。
另一个关键是“不必要”这个词。我还没有创建Spring应用程序,需要在Spring环境之外的那些类。当我(通常是暴露的API)时,它一直在接口级别。但请注意,我从一开始就知道这种暴露会存在,因此我做了相应的计划。