@SuppressWarnings("unchecked")
	private void bindAndValidate(Map<String, String> raw) throws BindException {
		DataBinder dataBinder = new DataBinder(beanWrapper.getWrappedInstance());
		dataBinder.setIgnoreUnknownFields(false);
		dataBinder.setConversionService(conversionService);
		MutablePropertySources mps = new MutablePropertySources();
		mps.addFirst(new MapPropertySource("options", (Map) raw));
		try {
			dataBinder.bind(new PropertySourcesPropertyValues(mps));
		}
		catch (InvalidPropertyException e) {
			dataBinder.getBindingResult().addError(new FieldError("options", e.getPropertyName(), e.getMessage()));
		}

		CustomValidatorBean validator = new CustomValidatorBean();
		validator.afterPropertiesSet();
		dataBinder.setValidator(validator);

		Class<?>[] groups = determineGroupsToUse(beanWrapper.getWrappedInstance());
		dataBinder.validate((Object[]) groups);

		if (dataBinder.getBindingResult().hasErrors()) {
			throw new BindException(dataBinder.getBindingResult());
		}
	}
Read the description from the value() attribute of the annotation on the getter.
spring-xd-module/src/main/java/org/springframework/xd/module/options/PojoModuleOptionsMetadata.java