SingleBeanDependencyResolver.java
package sprout.beans.instantiation;
import sprout.beans.BeanDefinition;
import sprout.context.BeanFactory;
import java.lang.reflect.Parameter;
import java.util.List;
/**
* 단일 빈 의존성을 해결하는 resolver
*/
public class SingleBeanDependencyResolver implements DependencyTypeResolver {
private final BeanFactory beanFactory;
public SingleBeanDependencyResolver(BeanFactory beanFactory) {
this.beanFactory = beanFactory;
}
@Override
public boolean supports(Class<?> type) {
// List 타입이 아닌 모든 타입을 지원
return !List.class.isAssignableFrom(type);
}
@Override
public Object resolve(Class<?> type, Parameter param, BeanDefinition targetDef) {
return beanFactory.getBean(type);
}
}