1

我有一个@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 连接,我很好奇我是否可以记忆和重用连接,或者我是否每个请求都有一个需要立即关闭的实例。

春季启动 1.5.2

4

1 回答 1

0

@RestController@Controllerand的简写@ResponseBody。它尊重MVC 原则

@Service是业务服务外观模式(在核心 J2EE 模式意义上)的专业化@Component和尊重。

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

您还可以阅读Spring @Component、@Repository、@Service 和 @Controller 注释以获取更多信息。

于 2017-04-20T19:56:42.513 回答