Spring에서 특정 클래스의 Generic 타입 받는 방법

유알·2024년 1월 26일
0

@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 로 꺼내오는 것을 볼 수 있다.

너무 편리하다

profile
더 좋은 구조를 고민하는 개발자 입니다

0개의 댓글