Este equipo de expertos pasados muchos días de investigación y de recopilar de datos, obtuvimos la respuesta, deseamos que te resulte útil para tu proyecto.
Solución:
No, son bastante diferentes entre sí.
Ambos son diferentes especializaciones de @Componente anotación (en la práctica, son dos implementaciones diferentes de la misma interfaz), por lo que ambas pueden ser detectadas por el escaneo de classpath (si lo declara en su configuración XML)
@Servicio La anotación se usa en su capa de servicio y anota las clases que realizan tareas de servicio, a menudo no la usa, pero en muchos casos usa esta anotación para representar una mejor práctica. Por ejemplo, podría llamar directamente a una clase DAO para conservar un objeto en su base de datos, pero esto es horrible. Es bastante bueno llamar a una clase de servicio que llama a un DAO. Esto es bueno para realizar el patrón de separación de preocupaciones.
@Controlador anotación es una anotación utilizada en el marco Spring MVC (el componente de Spring Framework utilizado para implementar la aplicación web). La anotación @Controller indica que una clase en particular cumple la función de un controlador. La anotación @Controller actúa como un estereotipo de la clase anotada, indicando su rol. El despachador escanea dichas clases anotadas en busca de métodos asignados y detecta anotaciones @RequestMapping.
Entonces, mirando la arquitectura Spring MVC, tiene una clase DispatcherServlet (que declara en su configuración XML) que representa un controlador frontal que envía todas las solicitudes HTTP hacia las clases de controlador apropiadas (anotadas por @Controller). Esta clase realiza la lógica empresarial (y puede llamar a los servicios) por su método. Estas clases (o sus métodos) normalmente se anotan también con @RequestMapping anotación que especifica qué solicitud HTTP maneja el controlador y su método.
Por ejemplo:
@Controller
@RequestMapping("/appointments")
public class AppointmentsController {
private final AppointmentBook appointmentBook;
@Autowired
public AppointmentsController(AppointmentBook appointmentBook)
this.appointmentBook = appointmentBook;
@RequestMapping(method = RequestMethod.GET)
public Map get()
return appointmentBook.getAppointmentsForToday();
Esta clase es un controlador.
Esta clase maneja todas las solicitudes HTTP hacia la “carpeta” “/citas” y, en particular, el método get es el método llamado para manejar todas las solicitudes HTTP GET hacia la carpeta “/citas”.
Espero que ahora te quede más claro.
Si miras las definiciones de @Controller
, @Service
anotaciones, encontrará que se trata de un tipo especial de @Component
anotación.
@Component
public @interface Service
….
@Component
public @interface Controller
…
Entonces, ¿cuál es la diferencia?
@Controlador
los @Controller
La anotación indica que una clase en particular cumple la función de controlador. los @Controller
anotación actúa como un estereotipo para la clase anotada, indicando su rol.
¿Qué tiene de especial @Controller?
No puede cambiar esta anotación con ninguna otra como @Service
o @Repository
, aunque se vean iguales. El despachador escanea las clases anotadas con @Controller
y detecta @RequestMapping
anotaciones dentro de ellos. solo puedes usar @RequestMapping
en @Controller
clases anotadas.
@Servicio
@Services
mantenga la lógica empresarial y el método de llamada en la capa de repositorio.
¿Qué tiene de especial @Service?
Aparte del hecho de que se usa para indicar que mantiene la lógica de negocios, no hay una especialidad notable que proporcione esta anotación, pero quién sabe, Spring puede agregar algunas excepciones adicionales en el futuro.
Respuesta vinculada: ¿Cuál es la diferencia entre las anotaciones @Component, @Repository y @Service en Spring?
No, @Controller
no es lo mismo que @Service
aunque ambas son especializaciones de @Component
, lo que los convierte en candidatos para el descubrimiento mediante el escaneo de classpath. los @Service
la anotación se utiliza en su capa de servicio, y @Controller
es para controladores Spring MVC en su capa de presentación. A @Controller
normalmente tendría una asignación de URL y se activaría mediante una solicitud web.
Más adelante puedes encontrar las acotaciones de otros administradores, tú incluso tienes la habilidad insertar el tuyo si lo crees conveniente.