Spring boot Spring Boot@RestController和注入的@Service的寿命是多少?

Spring boot Spring Boot@RestController和注入的@Service的寿命是多少?,spring-boot,groovy,groovy-sql,Spring Boot,Groovy,Groovy Sql,我有一个@RestController,它有一个注入的@servicebean。我无法理解控制器及其服务的寿命。这是按每个请求进行的吗?还是比这还要长?我对Spring和如何管理豆子还不熟悉 @RestController class AppController { private final AppService appService AppController(AppService appService) { this.appService = appSe

我有一个@RestController,它有一个注入的@servicebean。我无法理解控制器及其服务的寿命。这是按每个请求进行的吗?还是比这还要长?我对Spring和如何管理豆子还不熟悉

@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

@RestController
@Controller
@ResponseBody
的缩写。它尊重法律

@服务
@组件
的专业化,并尊重(在核心J2EE模式意义上)的

因此,这些注释的生命周期就是整个应用程序的生命周期


您还可以阅读了解更多信息。

@RestController
@Controller
@ResponseBody
的缩写。它尊重法律

@服务
@组件
的专业化,并尊重(在核心J2EE模式意义上)的

因此,这些注释的生命周期就是整个应用程序的生命周期


您还可以阅读了解更多信息。

这非常有用。我猜这个问题的基础是,使用这种方法会导致数据库池连接耗尽。我应该编辑原始问题还是创建一个新问题?如果是不同的问题,请创建一个新问题。这非常有用。我猜这个问题的基础是,使用这种方法会导致数据库池连接耗尽。我应该编辑原始问题还是创建一个新问题?如果是其他问题,请创建一个新问题。如果未指定Spring组件的范围,则默认范围为
singleton
。如果未指定Spring组件的范围,则默认范围为
singleton