
com.sprint.framework.web.config.AnnotationDrivenBeanDefinitionParser Maven / Gradle / Ivy
The newest version!
package com.sprint.framework.web.config;
import com.sprint.framework.core.common.utils.Safes;
import org.springframework.beans.factory.support.AbstractBeanDefinition;
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
import org.springframework.beans.factory.xml.AbstractSingleBeanDefinitionParser;
import org.springframework.beans.factory.xml.ParserContext;
import org.springframework.util.StringUtils;
import org.w3c.dom.Element;
import javax.annotation.Nonnull;
/**
* 支持XML解析。
*
* @author hongfeng.li
* @since 2023/2/28
*/
public class AnnotationDrivenBeanDefinitionParser extends AbstractSingleBeanDefinitionParser {
public static final String BEAN_NAME = "commonWebConfiguration";
public static final String ANNOTATION_DRIVEN = "annotation-driven";
@Override
protected String getBeanClassName(@Nonnull Element element) {
return CommonWebConfiguration.class.getName();
}
@Nonnull
@Override
protected String resolveId(@Nonnull Element element, @Nonnull AbstractBeanDefinition definition,
@Nonnull ParserContext parserContext) {
return BEAN_NAME;
}
@Override
protected void doParse(Element element, @Nonnull BeanDefinitionBuilder builder) {
if (ANNOTATION_DRIVEN.equals(element.getLocalName())) {
String requestBodyTrim = element.getAttribute("request-trim");
if (StringUtils.hasLength(requestBodyTrim)) {
builder.addPropertyValue("requestTrim", Safes.toBoolean(requestBodyTrim, false));
}
String reorderXmlToEnd = element.getAttribute("reorder-xml-to-end");
if (StringUtils.hasLength(reorderXmlToEnd)) {
builder.addPropertyValue("reorderXmlToEnd", Safes.toBoolean(reorderXmlToEnd, true));
}
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy