L’annotation @Service de Spring est une spécialisation de l’annotation @Component. L’annotation Spring Service ne peut être appliquée qu’aux classes. Elle est utilisée pour marquer la classe en tant que fournisseur de service.
Annotation Spring @Service
L’annotation @Service de Spring est utilisée avec les classes qui fournissent certaines fonctionnalités métier. Le contexte Spring détectera automatiquement ces classes lors de la configuration basée sur les annotations et de l’analyse du classpath.
Exemple de l’annotation Spring @Service
Créons une application Spring simple où nous allons créer une classe de service Spring. Créez un projet maven simple dans Eclipse et ajoutez la dépendance spring core suivante.
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.0.6.RELEASE</version>
</dependency>
Notre structure de projet final ressemblera à l’image ci-dessous. Créons maintenant une classe de service.
package com.journaldev.spring;
import org.springframework.stereotype.Service;
@Service("ms")
public class MathService {
public int add(int x, int y) {
return x + y;
}
public int subtract(int x, int y) {
return x - y;
}
}
Remarquez que c’est une classe Java simple qui fournit des fonctionnalités pour ajouter et soustraire deux entiers. Ainsi, nous pouvons l’appeler un fournisseur de services. Nous l’avons annoté avec l’annotation @Service afin que le contexte Spring puisse le détecter automatiquement et que nous puissions obtenir son instance à partir du contexte. Créons une classe principale où nous créerons le contexte Spring piloté par annotation et obtenons l’instance de notre classe de service.
package com.journaldev.spring;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
public class SpringMainClass {
public static void main(String[] args) {
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();
context.scan("com.journaldev.spring");
context.refresh();
MathService ms = context.getBean(MathService.class);
int add = ms.add(1, 2);
System.out.println("Addition of 1 and 2 = " + add);
int subtract = ms.subtract(2, 1);
System.out.println("Subtraction of 2 and 1 = " + subtract);
//fermer le contexte Spring
context.close();
}
}
Exécutez simplement la classe en tant qu’application Java, elle produira la sortie suivante.
Jun 05, 2018 3:02:05 PM org.springframework.context.support.AbstractApplicationContext prepareRefresh
INFO: Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@ff5b51f: startup date [Tue Jun 05 15:02:05 IST 2018]; root of context hierarchy
Addition of 1 and 2 = 3
Subtraction of 2 and 1 = 1
Jun 05, 2018 3:02:05 PM org.springframework.context.support.AbstractApplicationContext doClose
INFO: Closing org.springframework.context.annotation.AnnotationConfigApplicationContext@ff5b51f: startup date [Tue Jun 05 15:02:05 IST 2018]; root of context hierarchy
Si vous remarquez notre classe MathService, nous avons défini le nom du service comme « ms ». Nous pouvons également obtenir l’instance de MathService
en utilisant ce nom. La sortie restera la même dans ce cas. Cependant, nous devrons utiliser une conversion explicite.
MathService ms = (MathService) context.getBean("ms");
C’est tout pour un exemple rapide de l’annotation @Service de Spring.
Vous pouvez télécharger le code du projet exemple depuis notre Dépôt GitHub.
Référence: Documentation de l’API
Source:
https://www.digitalocean.com/community/tutorials/spring-service-annotation