Каков срок службы Spring Boot @RestController и внедренного @Service?
У меня есть @RestController, у которого есть встроенный компонент @Service. У меня проблемы с пониманием срока службы контроллера и его службы. Это на основе запроса? Или это длиннее? Я новичок в весне и как бобы управляются.
@RestController
class AppController {
private final AppService appService
AppController(AppService appService) {
this.appService = appService
}
...
}
@Service
class AppService {
private final DataSource dataSource
AppService(DataSource dataSource) {
this.dataSource = dataSource
}
private Sql getSql() {
new Sql(dataSource.connection)
}
...
}
Причина, по которой я спрашиваю, заключается в том, что мы создаем экземпляр sql-соединения внутри службы, и мне любопытно, могу ли я запомнить и повторно использовать соединение или у меня будет один экземпляр на запрос, который необходимо немедленно закрыть.
Spring Boot 1.5.2
1 ответ
@RestController
это сокращение для @Controller
а также @ResponseBody
, Это уважает принципы MVC.
@Service
это специализация @Component
и уважать шаблон Business Service Facade (в смысле шаблонов Core J2EE).
Отсюда следует, что срок службы этих аннотаций является сроком службы всего приложения.
Вы также можете прочитать Spring @Component, @Repository, @Service и @Controller Annotations для получения дополнительной информации.