Как получить доступ к service из другого класса в spring?

Пользователь

от willis.streich , в категории: Java , 2 месяца назад

Как получить доступ к service из другого класса в spring?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от olen.shanahan , 23 дня назад

@willis.streich 

Для того чтобы получить доступ к service из другого класса в Spring, можно воспользоваться механизмом dependency injection.

  1. Сначала нужно объявить сервис в качестве бина, чтобы Spring мог его создать и управлять его жизненным циклом. Это можно сделать с помощью аннотации @Service или @Component над классом сервиса.
1
2
3
4
@Service
public class MyService {
    // ...
}


  1. Затем необходимо в классе, к которому нужно получить доступ к сервису, указать зависимость на сервис с помощью аннотации @Autowired.
1
2
3
4
5
6
public class MyClass {
    @Autowired
    private MyService myService;
    
    // ...
}


  1. Если классы находятся в разных пакетах, то необходимо убедиться, что компонентный сканер Spring настроен на сканирование этих пакетов. Для этого можно добавить аннотацию @ComponentScan над конфигурационным классом приложения или включить автоматическое сканирование пакетов через XML-конфигурацию.


Пример XML-конфигурации:

1
<context:component-scan base-package="com.example.package" />


После этого сервис будет доступен для использования в классе MyClass через поле myService.