working pointer not injection ejemplo dependency bean autowire annotation java spring spring-boot autowired

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;