Каков срок службы 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 для получения дополнительной информации.

Другие вопросы по тегам