Spring Boot @RestController和注入的@Service的生命周期是多少?

时间:2017-04-20 19:44:52

标签: spring-boot groovy groovy-sql

我有一个@RestController,它有一个注入的@Service bean。我无法理解控制器及其服务的生命周期。是基于每个请求吗?或者它比那更长?我是Spring的新手,也是bean的管理方式。

@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 个答案:

答案 0 :(得分:0)

@RestController@Controller@ResponseBody的简写。它尊重MVC principles

@Service@Component的特化,尊重Business Service Facade pattern(在核心J2EE模式意义上)。

由此可见,这些注释的生命周期是整个应用程序的生命周期。

您还可以阅读Spring @Component, @Repository, @Service and @Controller Annotations了解更多信息。