我开始从基于XML的配置转移到@EnableWebMvc和WebMvcConfigurerAdapter配置。但是当我更改配置时,它似乎从DefaultAnnotationHandlerMapping切换到RequestMappingHandlerAdapter。
如果我想切换回DefaultAnnotationHandlerMapping,我该如何设置呢?
(我知道不推荐使用DefaultAnnotationHandlerMapping,但我仍然想知道如何设置spring来使用它)
答案 0 :(得分:0)
将此批注添加到
的MVC配置@Configuration
类可导入Spring 来自WebMvcConfigurationSupport
[...]
此类注册以下
HandlerMappings
:
RequestMappingHandlerMapping
在0处排序,用于将请求映射到带注释的控制器方法。HandlerMapping
从1开始,将URL路径直接映射到视图名称。BeanNameUrlHandlerMapping
在2处命令将URL路径映射到控制器bean名称。HandlerMapping
在Integer.MAX_VALUE-1
订购,以提供静态资源请求。HandlerMapping
在Integer.MAX_VALUE
处命令将请求转发到默认servlet。
RequestMappingHandlerMapping
来自的地方。这个"默认"配置或多或少等同于指定
<mvc:annotation-driven />
在XML配置中。
如果你想要DefaultAnnotationHandlerMapping
提前RequestMappingHandlerMapping
@Bean
public DefaultAnnotationHandlerMapping defaultAnnotationHandlerMapping() {
DefaultAnnotationHandlerMapping defaultAnnotationHandlerMapping = new DefaultAnnotationHandlerMapping();
defaultAnnotationHandlerMapping.setOrder(-1);
// and other properties
return defaultAnnotationHandlerMapping;
}
,那么为它声明你自己的bean并将其顺序设置得更低。
HandlerMapping
如果您希望这是DispatcherServlet
中唯一注册的"handlerMapping"
,请将bean命名为false
并将DispatcherServlet#detectAllHandlerMappings
属性设置为class client():
def __init__(self, host, port):
self.host = host
self.port = port
self.socket = self.connect()
self.command = commands()
def connect(self):
'''
Connect to a remote host.
'''
try:
import socket
return socket.create_connection((self.host, self.port))
except socket.error:
print(":: Failed to connect to a remote port : ")
def sendCommand(self, comm):
'''
Send command to remote host
Returns server output
'''
comman = comm.encode()
# for case in switch(comman):
# if case(self.command.RETRV_FILES_LIST.encode()):
# self.socket.send(b'1')
# return self.recvData()
# if case():
# print(":: Got wrong command")
if (comman == b'1'):
self.socket.send(b'1')
return self.recvData()
def recvData(self):
'''
Receives all the data
'''
i = 0
total_data = []
while(True):
data = self.socket.recv(1024)
if not data: break
total_data.append(data)
i += 1
if i > 9:
break
return total_data
。