@Enable* 코드를 분석하다 발견한 유틸인데
public abstract class SpringFactoryImportSelector<T>
implements DeferredImportSelector, BeanClassLoaderAware, EnvironmentAware {
private final Log log = LogFactory.getLog(SpringFactoryImportSelector.class);
private ClassLoader beanClassLoader;
private Class<T> annotationClass;
private Environment environment;
@SuppressWarnings("unchecked")
protected SpringFactoryImportSelector() {
this.annotationClass = (Class<T>) GenericTypeResolver.resolveTypeArgument(this.getClass(),
SpringFactoryImportSelector.class);
}
생성자에 보면, GenericTypeResolver 라는 스프링의 유틸성 객체를 통해 제너릭 타입을 class 로 꺼내오는 것을 볼 수 있다.
너무 편리하다