package com.github.ltsopensource.autoconfigure.resolver; import com.github.ltsopensource.autoconfigure.AutoConfigContext; import com.github.ltsopensource.autoconfigure.PropertiesConfigurationFactory; import java.beans.PropertyDescriptor; import java.util.HashMap; import java.util.Map; /** * @author Robert HG (254963746@qq.com) on 4/20/16. */ public class JavaBeanResolver extends AbstractResolver { public static final JavaBeanResolver INSTANCE = new JavaBeanResolver(); @Override public void resolve(AutoConfigContext context, PropertyDescriptor descriptor, Class<?> propertyType) { final Map<String, String> includeMap = new HashMap<String, String>(); doFilter(context, descriptor, new Filter() { @Override public boolean onCondition(String name, String key, String value) { return key.startsWith(name); } @Override public boolean call(String name, String key, String value) { String subKey = key.substring(name.length() + 1); includeMap.put(subKey, value); return true; } }); Object value = PropertiesConfigurationFactory.createPropertiesConfiguration(propertyType, null, includeMap); if (value != null) { writeProperty(context, descriptor, value); } } }