refined internal HandlerMapping/HandlerAdapter bean names
This commit is contained in:
parent
87d0da2d4c
commit
b2ff0b1df0
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright 2002-2009 the original author or authors.
|
* Copyright 2002-2010 the original author or authors.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
|
@ -18,6 +18,8 @@ package org.springframework.web.servlet.config;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.w3c.dom.Element;
|
||||||
|
|
||||||
import org.springframework.beans.factory.config.BeanDefinition;
|
import org.springframework.beans.factory.config.BeanDefinition;
|
||||||
import org.springframework.beans.factory.parsing.BeanComponentDefinition;
|
import org.springframework.beans.factory.parsing.BeanComponentDefinition;
|
||||||
import org.springframework.beans.factory.support.ManagedMap;
|
import org.springframework.beans.factory.support.ManagedMap;
|
||||||
|
|
@ -27,12 +29,12 @@ import org.springframework.beans.factory.xml.ParserContext;
|
||||||
import org.springframework.web.servlet.handler.SimpleUrlHandlerMapping;
|
import org.springframework.web.servlet.handler.SimpleUrlHandlerMapping;
|
||||||
import org.springframework.web.servlet.mvc.ParameterizableViewController;
|
import org.springframework.web.servlet.mvc.ParameterizableViewController;
|
||||||
import org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter;
|
import org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter;
|
||||||
import org.w3c.dom.Element;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@link org.springframework.beans.factory.xml.BeanDefinitionParser} that parses a {@code view-controller} element to register
|
* {@link org.springframework.beans.factory.xml.BeanDefinitionParser} that parses a
|
||||||
* a {@link ParameterizableViewController}. Will also register a {@link SimpleUrlHandlerMapping} for view controllers.
|
* {@code view-controller} element to register a {@link ParameterizableViewController}.
|
||||||
*
|
* Will also register a {@link SimpleUrlHandlerMapping} for view controllers.
|
||||||
|
*
|
||||||
* @author Keith Donald
|
* @author Keith Donald
|
||||||
* @author Christian Dupuis
|
* @author Christian Dupuis
|
||||||
* @since 3.0
|
* @since 3.0
|
||||||
|
|
@ -40,20 +42,21 @@ import org.w3c.dom.Element;
|
||||||
class ViewControllerBeanDefinitionParser implements BeanDefinitionParser {
|
class ViewControllerBeanDefinitionParser implements BeanDefinitionParser {
|
||||||
|
|
||||||
private static final String HANDLER_ADAPTER_BEAN_NAME =
|
private static final String HANDLER_ADAPTER_BEAN_NAME =
|
||||||
"org.springframework.web.servlet.config.internalHandlerAdapter";
|
"org.springframework.web.servlet.config.viewControllerHandlerAdapter";
|
||||||
|
|
||||||
private static final String HANDLER_MAPPING_BEAN_NAME =
|
private static final String HANDLER_MAPPING_BEAN_NAME =
|
||||||
"org.springframework.web.servlet.config.internalHandlerMapping";
|
"org.springframework.web.servlet.config.viewControllerHandlerMapping";
|
||||||
|
|
||||||
|
|
||||||
public BeanDefinition parse(Element element, ParserContext parserContext) {
|
public BeanDefinition parse(Element element, ParserContext parserContext) {
|
||||||
Object source = parserContext.extractSource(element);
|
Object source = parserContext.extractSource(element);
|
||||||
|
|
||||||
// Register handler adapter
|
// Register handler adapter
|
||||||
registerHanderAdapter(element, parserContext, source);
|
registerHanderAdapter(parserContext, source);
|
||||||
|
|
||||||
// Register handler mapping
|
// Register handler mapping
|
||||||
BeanDefinition handlerMappingDef = registerHandlerMapping(element, parserContext, source);
|
BeanDefinition handlerMappingDef = registerHandlerMapping(parserContext, source);
|
||||||
|
|
||||||
// Create view controller bean definition
|
// Create view controller bean definition
|
||||||
RootBeanDefinition viewControllerDef = new RootBeanDefinition(ParameterizableViewController.class);
|
RootBeanDefinition viewControllerDef = new RootBeanDefinition(ParameterizableViewController.class);
|
||||||
viewControllerDef.setSource(source);
|
viewControllerDef.setSource(source);
|
||||||
|
|
@ -63,7 +66,8 @@ class ViewControllerBeanDefinitionParser implements BeanDefinitionParser {
|
||||||
Map<String, BeanDefinition> urlMap;
|
Map<String, BeanDefinition> urlMap;
|
||||||
if (handlerMappingDef.getPropertyValues().contains("urlMap")) {
|
if (handlerMappingDef.getPropertyValues().contains("urlMap")) {
|
||||||
urlMap = (Map<String, BeanDefinition>) handlerMappingDef.getPropertyValues().getPropertyValue("urlMap").getValue();
|
urlMap = (Map<String, BeanDefinition>) handlerMappingDef.getPropertyValues().getPropertyValue("urlMap").getValue();
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
urlMap = new ManagedMap<String, BeanDefinition>();
|
urlMap = new ManagedMap<String, BeanDefinition>();
|
||||||
handlerMappingDef.getPropertyValues().add("urlMap", urlMap);
|
handlerMappingDef.getPropertyValues().add("urlMap", urlMap);
|
||||||
}
|
}
|
||||||
|
|
@ -71,7 +75,7 @@ class ViewControllerBeanDefinitionParser implements BeanDefinitionParser {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void registerHanderAdapter(Element element, ParserContext parserContext, Object source) {
|
private void registerHanderAdapter(ParserContext parserContext, Object source) {
|
||||||
if (!parserContext.getRegistry().containsBeanDefinition(HANDLER_ADAPTER_BEAN_NAME)) {
|
if (!parserContext.getRegistry().containsBeanDefinition(HANDLER_ADAPTER_BEAN_NAME)) {
|
||||||
RootBeanDefinition handlerAdapterDef = new RootBeanDefinition(SimpleControllerHandlerAdapter.class);
|
RootBeanDefinition handlerAdapterDef = new RootBeanDefinition(SimpleControllerHandlerAdapter.class);
|
||||||
handlerAdapterDef.setSource(source);
|
handlerAdapterDef.setSource(source);
|
||||||
|
|
@ -81,7 +85,7 @@ class ViewControllerBeanDefinitionParser implements BeanDefinitionParser {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private BeanDefinition registerHandlerMapping(Element element, ParserContext parserContext, Object source) {
|
private BeanDefinition registerHandlerMapping(ParserContext parserContext, Object source) {
|
||||||
if (!parserContext.getRegistry().containsBeanDefinition(HANDLER_MAPPING_BEAN_NAME)) {
|
if (!parserContext.getRegistry().containsBeanDefinition(HANDLER_MAPPING_BEAN_NAME)) {
|
||||||
RootBeanDefinition handlerMappingDef = new RootBeanDefinition(SimpleUrlHandlerMapping.class);
|
RootBeanDefinition handlerMappingDef = new RootBeanDefinition(SimpleUrlHandlerMapping.class);
|
||||||
handlerMappingDef.setSource(source);
|
handlerMappingDef.setSource(source);
|
||||||
|
|
@ -95,4 +99,5 @@ class ViewControllerBeanDefinitionParser implements BeanDefinitionParser {
|
||||||
return parserContext.getRegistry().getBeanDefinition(HANDLER_MAPPING_BEAN_NAME);
|
return parserContext.getRegistry().getBeanDefinition(HANDLER_MAPPING_BEAN_NAME);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue