Spring @Autowired 是否为每个新的 API 请求创建一个新实例?

Nis*_*ngh 0 java spring spring-mvc spring-boot

我想知道 Spring 是否@Autowired每次都会为新的 API 请求创建一个新实例。我正在使用@Autowired我的服务类。

sha*_*zin 7

不,除非您专门为请求范围创建了 bean,否则不会。

当你用注释的服务类创建一个bean @Service@Component等,或通过创建实例化服务类,并标注有一个方法@Bean的默认范围是单身。所以只会创建一个实例并将其注入到所有使用的地方@Autowired

如果您需要请求范围内,你需要注释的服务类或bean创建方法@RequestScope@Scope("request")。这仅在 Web 应用程序上下文中受支持。