如果我们在春季MVC中交换@service和@repository注释会发生什么
为什么我们需要在服务实现和DAO实现中使用。在弹簧MVC中互换和注释时没有问题。@service
@repository
@service
@repository
为什么我们需要在服务实现和DAO实现中使用。在弹簧MVC中互换和注释时没有问题。@service
@repository
@service
@repository
根据文献,都是同义词。它们都只是注释的专门化。因此,通常,它们可以一个使用而不是另一个。但。。。你不应该这样做。@Repository
@Service
@Controller
@Component
第一个原因:这些注释中的任何一个都清楚地表明了组件在应用程序中的作用。显示 - 此组件属于控制器、服务或数据层。
第二个原因是:其中一些注释由不同的Spring模块以不同的方式处理。例如,将处理并将尝试用实现替换由此注释标记的任何接口。Spring还将对此类类应用自动异常转换。另一个例子:进程,并在URL映射中使用用它标记的类。Spring Data JPA
@Repository
Spring Web MVC
@Controller
实际上,在未来的版本中,Spring的某些模块可以以特定的方式进行处理。没有那么简单。这就是为什么文档建议:@Service
@Component
@Repository、@Service和@Controller也可能在Spring Framework的未来版本中携带额外的语义。因此,如果要在服务图层使用@Component或@Service之间进行选择,@Service显然是更好的选择。