package org.test4j.module.spring.strategy.register.types; import java.lang.reflect.Field; import java.util.Queue; import java.util.Set; import javax.annotation.Resource; import org.test4j.module.spring.strategy.register.RegisterBeanDefinition; import org.test4j.tools.commons.AnnotationHelper; import org.test4j.tools.commons.StringHelper; @SuppressWarnings({ "rawtypes", "unchecked" }) public class ResourcePropertiesRegister extends PropertiesRegister { protected ResourcePropertiesRegister(Class ownerClazz, RegisterBeanDefinition definitionRegister) { super(ownerClazz, definitionRegister); } @Override public void registerProperties(Queue<Class> registedBeanClazz) { Set<Field> fields = AnnotationHelper.getFieldsAnnotatedWith(ownerClazz, Resource.class); for (Field field : fields) { Resource resource = field.getAnnotation(Resource.class); String beanName = resource.name(); if (StringHelper.isBlankOrNull(beanName)) { beanName = field.getName(); } Class propClazz = field.getType(); boolean isExclude = this.definitionRegister.isExcludeProperty(beanName, propClazz); if (isExclude == false) { this.registerBean(beanName, propClazz, registedBeanClazz); } } } }