java - pointer - Primavera: obtener todos los Beans de cierta interfaz y tipo
spring boot dependency injection (2)
En mi aplicación Spring Boot, supongo que tengo una interfaz en Java:
public interface MyFilter<E extends SomeDataInterface>
(Un buen ejemplo es la interfaz pública de Spring ApplicationListener <E extiende ApplicationEvent> )
Y tengo un par de implementaciones como:
@Component
public class DesignatedFilter1 implements MyFilter<SpecificDataInterface>{...}
@Component
public class DesignatedFilter2 implements MyFilter<SpecificDataInterface>{...}
@Component
public class DesignatedFilter3 implements MyFilter<AnotherSpecificDataInterface>{...}
Luego, en algún objeto me interesa utilizar todos los filtros que implementan MyFilter <SpecificDataInterface> pero NO MyFilter <AnotherSpecificDataInterface>
¿Cuál sería la sintaxis de esto?
Lo siguiente inyectará cada instancia de MyFilter que tenga un tipo que amplíe el Interfaz de datos específicos como un argumento genérico en la Lista.
@Autowired
private List<MyFilter<? extends SpecificDataInterface>> list;
Usted puede simplemente utilizar
@Autowired
private List<MyFilter<SpecificDataInterface>> filters;