¿Cuándo usar javax.inject.Provider en Spring?

Lo que hace es bastante simple:

@Inject
private Provider<ProductService> productService;

El servicio del producto está disponible a través deproductService.get() y.get() Resolverá la instancia del contexto de Spring en cada llamada.

Pero cuando debo usarlo? ¿Y donde?

Mi caso de uso principal es bastante simple: cuando obtengo dependencias circulares, el proveedor ayuda a resolver la dependencia en tiempo de ejecución. Pero parece un poco aleatorio si lo lanza justo cuando no puede crear su contexto causado por una dependencia circular.

¿Existen patrones conocidos sobre el uso de los proveedores?

Respuestas a la pregunta(2)

Su respuesta a la pregunta