java - ¿Cuál es el equivalente de Spring para la anotación CDI @Produces?
dependency-injection (1)
Cuando trabajaba con CDI, podía usar la anotación @Produces para crear un método de productor al que llamar para elegir qué bean que implementaba una interfaz sería inyectado por la anotación @Inject .
Ahora estoy trabajando con Spring, pero no encontré nada similar. ¿Qué necesito usar para lograr el mismo resultado que tuve con la anotación @Produces en CDI cuando uso la anotación @Autowired ?
Estás buscando a @Bean :
@Bean es una anotación de nivel de método y un análogo directo del elemento XML. La anotación es compatible con la mayoría de los atributos ofrecidos por, tales como: método-inicial, método de destruir, conexión automática, inicialización lenta, verificación de dependencia, dependencia y alcance.
Ejemplo (tomado del enlace de arriba):
@Configuration
public class AppConfig {
//similar to @Produces CDI annotation
@Bean
public TransferService transferService() {
return new TransferServiceImpl();
}
}
Le sugiero que lea esto: estudio comparativo Spring DI y CDI