Spring @Service Anotación con ejemplo

Spring es uno de los marcos Java EE más populares. Es un marco ligero de código abierto que permite a los desarrolladores de Java EE 7 crear aplicaciones empresariales sencillas, fiables y escalables. Este marco se centra principalmente en proporcionar varias formas de ayudarlo a administrar sus objetos comerciales. Hizo que el desarrollo de aplicaciones web fuera mucho más fácil en comparación con los marcos Java clásicos y las interfaces de programación de aplicaciones (API), como la conectividad de base de datos Java (JDBC), JavaServer Pages (JSP) y Java Servlet. Este marco utiliza varias técnicas nuevas, como la programación orientada a aspectos (AOP), el objeto Java antiguo simple (POJO) y la inyección de dependencia (DI), para desarrollar aplicaciones empresariales. Ahora hablando de Spring Annotation

Las anotaciones de Spring son una forma de metadatos que proporcionan datos sobre un programa. Las anotaciones se utilizan para proporcionar información complementaria sobre un programa. No tiene un efecto directo sobre el funcionamiento del código que anotan. No cambia la acción del programa compilado. 

Hay muchas anotaciones disponibles en Spring Framework. Algunas de las anotaciones de Spring Framework se enumeran a continuación, donde aquí vamos a discutir una de las anotaciones más importantes que es @ServiceAnnotation

  • @Requerido
  • @autocableado
  • @Configuración
  • @ComponentScan
  • @Frijol
  • @Componente
  • @Controlador
  • @Servicio
  • @Repositorio, etc

@Anotación de servicio

En una aplicación, la lógica empresarial reside dentro de la capa de servicio, por lo que usamos la anotación @Service para indicar que una clase pertenece a esa capa. También es una especialización de @Component Annotation como @Repository Annotation . Una de las cosas más importantes de la anotación @Service es que solo se puede aplicar a las clases. Se utiliza para marcar la clase como proveedor de servicios. Por lo tanto, la anotación general de @Service se usa con clases que brindan algunas funcionalidades comerciales. Spring context detectará automáticamente estas clases cuando se utilice la configuración basada en anotaciones y el escaneo de classpath.

Procedimiento

  1. Crear un proyecto Spring Boot simple
  2. Agregue la dependencia del contexto de resorte en su archivo pom.xml .
  3. Cree un paquete y nombre el paquete como «servicio».
  4. Probar el repositorio de primavera

Paso 1: Cree un proyecto Spring Boot simple

Consulte este artículo Crear y configurar Spring Boot Project en Eclipse IDE y cree un proyecto Spring Boot simple. 

Paso 2: agregue la dependencia del contexto de resorte en su archivo pom.xml . Vaya al archivo pom.xml dentro de su proyecto y agregue la siguiente dependencia de contexto primaveral.

XML

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>5.3.13</version>
</dependency>

Paso 3: en su proyecto, cree un paquete y nombre el paquete como «servicio». En el servicio, el paquete crea una clase y la nombra MyServiceClass . Esta será la estructura final de nuestro proyecto.

Ejemplo

Java

// Java Program to Illustrate MyServiceClass
 
// Importing package module to code module
package com.example.demo.service;
// Importing required classes
import org.springframework.stereotype.Service;
 
// Annotation
@Service
 
// Class
public class MyServiceClass {
 
    // Method
    // To compute factorial
    public int factorial(int n)
    {
        // Base case
        if (n == 0)
            return 1;
 
        return n * factorial(n - 1);
    }
}

En este código, observe que es una clase Java simple que brinda funcionalidades para calcular el factorial de un número. Así que podemos llamarlo un proveedor de servicios. Lo hemos anotado con la anotación @Service para que Spring-context pueda detectarlo automáticamente y podamos obtener su instancia del contexto.

Paso 4: prueba de repositorio de Spring

Ahora que nuestro Repositorio Spring está listo, vamos a probarlo. Vaya al archivo DemoApplication.java y consulte el siguiente código.

Ejemplo 

Java

// Java Program to Illustrate DemoApplication
 
// Importing package module to code fragment
package com.example.demo;
// Importing required classes
import com.example.demo.service.MyServiceClass;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
 
// Annotation
@SpringBootApplication
 
// Main class
public class DemoApplication {
 
    // MAin driver method
    public static void main(String[] args)
    {
 
        AnnotationConfigApplicationContext context
            = new AnnotationConfigApplicationContext();
        context.scan("com.example.demo");
 
        context.refresh();
 
        MyServiceClass myServiceClass
            = context.getBean(MyServiceClass.class);
 
        // Testing the factorial method
        int factorialOf5 = myServiceClass.factorial(5);
        System.out.println("Factorial of 5 is: "
                           + factorialOf5);
 
        // Closing the spring context
        // using close() method
        context.close();
    }
}

Producción: 

Nota: Si no está utilizando la anotación @Service, encontrará la siguiente excepción

Excepción en el subproceso «principal» org.springframework.beans.factory.NoSuchBeanDefinitionException: No hay bean calificador del tipo ‘com.example.demo.service.MyServiceClass’ disponible

en org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:351)

en org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:342)

en org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1172)

en com.ejemplo.demo.DemoApplication.main(DemoApplication.java:17)

Publicación traducida automáticamente

Artículo escrito por AmiyaRanjanRout y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *