@willis.streich
Для того чтобы получить доступ к service из другого класса в Spring, можно воспользоваться механизмом dependency injection.
- Сначала нужно объявить сервис в качестве бина, чтобы Spring мог его создать и управлять его жизненным циклом. Это можно сделать с помощью аннотации @Service или @Component над классом сервиса.
1
2
3
4
|
@Service
public class MyService {
// ...
}
|
- Затем необходимо в классе, к которому нужно получить доступ к сервису, указать зависимость на сервис с помощью аннотации @Autowired.
1
2
3
4
5
6
|
public class MyClass {
@Autowired
private MyService myService;
// ...
}
|
- Если классы находятся в разных пакетах, то необходимо убедиться, что компонентный сканер Spring настроен на сканирование этих пакетов. Для этого можно добавить аннотацию @ComponentScan над конфигурационным классом приложения или включить автоматическое сканирование пакетов через XML-конфигурацию.
Пример XML-конфигурации:
1
|
<context:component-scan base-package="com.example.package" />
|
После этого сервис будет доступен для использования в классе MyClass через поле myService.