Весенняя аннотация @Service
Аннотация Spring @Component. Аннотацию Spring Service можно применять только к классам. Он используется для обозначения класса как поставщика услуг.
Весенняя аннотация @Service
Аннотация Spring @Service используется с классами, которые предоставляют некоторые бизнес-функции. Контекст Spring автоматически обнаружит эти классы, когда используется конфигурация на основе аннотаций и сканирование путей к классам.
Пример Spring @Service
Давайте создадим простое приложение Spring, в котором мы создадим класс обслуживания Spring. Создайте простой проект maven в Eclipse и добавьте следующую зависимость ядра Spring.
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.0.6.RELEASE</version>
</dependency>
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;
}
}
Обратите внимание, что это простой класс Java, который предоставляет функции для сложения и вычитания двух целых чисел. Так что мы можем назвать это поставщиком услуг. Мы аннотировали его аннотацией @Service, чтобы контекст Spring мог автоматически определять его, и мы могли получить его экземпляр из контекста. Давайте создадим основной класс, в котором мы создадим управляемый аннотациями контекст Spring, чтобы получить экземпляр нашего класса обслуживания.
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);
//close the spring context
context.close();
}
}
Просто запустите класс как приложение Java, он выдаст следующий результат.
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
Если вы заметили наш класс MathService, мы определили имя службы как \ms. Мы также можем получить экземпляр MathService
, используя это имя. В этом случае результат останется прежним. Однако мы придется использовать явное приведение.
MathService ms = (MathService) context.getBean("ms");
Это все для быстрого примера аннотации Spring @Service.
Вы можете загрузить пример кода проекта из нашего репозитория GitHub.
Ссылка: документ API