我们可以在春季互换@Controller和@Service吗?

时间:2019-11-17 17:14:39

标签: spring spring-boot spring-mvc spring-annotations

我们可以在春季互换@Controller和@Service吗?我尝试了,它正在工作。它们是如何在内部实现的?

2 个答案:

答案 0 :(得分:2)

@Controller和@Service是@Component的特殊形式。 Spring允许您互换使用它,但不建议那样做。例如,@ Controller用于MVC上的Controller所服务的类。另外,spring调度程序servlet将在使用@Controller注释的类上扫描@RequestMapping。

答案 1 :(得分:1)

@Component
    ------@Controller
    ------@Service
    ------@Repository

@Controller@Service最终是@Component的一部分。您可以互换它们,但不建议这样做,也请遵循最佳做法。使用3种不同的注释的目的是使我们可以基于图层使用更合适的注释将其分开。

@Controller:

  • 带注释的类表示它是控制器组件,主要在表示层使用。

  • @Controller用于将类标记为Spring MVC Controller。此注释只是@Component的专用版本,它允许根据类路径扫描自动检测控制器类。

@服务: 它指示带注释的类是业务层中的Service组件。