我有一个@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
答案 0 :(得分:0)
@RestController
是@Controller
和@ResponseBody
的简写。它尊重MVC principles。
@Service
是@Component
的特化,尊重Business Service Facade pattern(在核心J2EE模式意义上)。
由此可见,这些注释的生命周期是整个应用程序的生命周期。
您还可以阅读Spring @Component, @Repository, @Service and @Controller Annotations了解更多信息。