Red de conocimiento informático - Problemas con los teléfonos móviles - Cómo inyectar interfaces de servicio de múltiples clases de implementación en Springboot

Cómo inyectar interfaces de servicio de múltiples clases de implementación en Springboot

En términos generales, nuestra interfaz de servicio tiene solo una clase de implementación, pero a veces hay dos clases de implementación. Entonces, ¿cómo podemos inyectar automáticamente la interfaz en este momento?

Si inyectamos la interfaz directamente, idea nos dará un error

1. De hecho, durante la inyección automática, primero encontrará la clase de implementación correspondiente según el tipo de clase. Si hay dos clases de implementación del mismo tipo, podemos encontrarlas por la identificación de la clase de implementación. Por ejemplo, PersonServiceImp1 se puede encontrar por la identificación de PersonServiceImp1

2. Inyectar a través de la anotación @Qualifier @Autowired

3. También podemos usar @Resource en lugar de @Autowired e inyectar especificando el nombre que especificamos

Primero, debemos especificar el. nombre en la clase de implementación

y luego usarlo al inyectar @Resource en lugar de @Autowired