[SPRING] 봄 : 특정 인터페이스 및 유형의 모든 콩을 얻을
SPRING봄 : 특정 인터페이스 및 유형의 모든 콩을 얻을
내 봄 부팅 응용 프로그램에서 나는 자바 인터페이스를 가지고 가정 :
public interface MyFilter<E extends SomeDataInterface>
(좋은 예는 봄의 공용 인터페이스 만약 ApplicationListener는
그리고 내가 좋아하는 구현의 몇 가지있다 :
@Component
public class DesignatedFilter1 implements MyFilter<SpecificDataInterface>{...}
@Component
public class DesignatedFilter2 implements MyFilter<SpecificDataInterface>{...}
@Component
public class DesignatedFilter3 implements MyFilter<AnotherSpecificDataInterface>{...}
그리고, 어떤 객체에 나는 MyFilter를 구현하는 모든 필터를 활용하는 관심이
이 구문은 무엇을 할 것인가?
해결법
-
==============================
1.다음은 목록에 일반적인 인수로 SpecificDataInterface를 확장하는 유형이 모든 MyFilter 인스턴스를 주입 할 것이다.
다음은 목록에 일반적인 인수로 SpecificDataInterface를 확장하는 유형이 모든 MyFilter 인스턴스를 주입 할 것이다.
@Autowired private List<MyFilter<? extends SpecificDataInterface>> list;
-
==============================
2.당신은 간단하게 사용할 수 있습니다
당신은 간단하게 사용할 수 있습니다
@Autowired private List<MyFilter<SpecificDataInterface>> filters;
-
==============================
3.경우 당신은 코드 아래의지도가 작동합니다. 열쇠는 당신의 정의 방법이다
경우 당신은 코드 아래의지도가 작동합니다. 열쇠는 당신의 정의 방법이다
private Map<String, MyFilter> factory = new HashMap<>(); @Autowired public ReportFactory(ListableBeanFactory beanFactory) { Collection<MyFilter> interfaces = beanFactory.getBeansOfType(MyFilter.class).values(); interfaces.forEach(filter -> factory.put(filter.getId(), filter)); }
from https://stackoverflow.com/questions/40286047/spring-get-all-beans-of-certain-interface-and-type by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 중첩 된 객체와 @Jsonview 사용하여 직렬화하는 방법 (0) | 2019.10.03 |
---|---|
[SPRING] 스프링 MVC - RestTemplate 출시 예외 HTTP 404 일이 (0) | 2019.10.03 |
[SPRING] 봄 데이터 나머지 V.S 패치 LinkableResources을 PUT (0) | 2019.10.03 |
[SPRING] 스프링 MVC 프레임 워크 : PUT 방식에 MultipartResolver (0) | 2019.10.03 |
[SPRING] 어떻게 봄 @Configuration 클래스에 HikariCP와 데이터 소스를 구성하는 방법? (0) | 2019.10.03 |