Java获取sevlet适配的URL_重写DispatcherServlet获取springmvc所有RequestMapping的url

1、重写DispatcherServlet

import java.util.HashSet;

import java.util.Map;

import java.util.Set;

import org.springframework.beans.factory.BeanFactoryUtils;

import org.springframework.context.ApplicationContext;

import org.springframework.web.method.HandlerMethod;

import org.springframework.web.servlet.DispatcherServlet;

import org.springframework.web.servlet.HandlerMapping;

import org.springframework.web.servlet.mvc.condition.PatternsRequestCondition;

import org.springframework.web.servlet.mvc.method.RequestMappingInfo;

import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping;

@SuppressWarnings("serial")

public class MyDispatcherServlet extends DispatcherServlet {

public static final Set MAPPING_URLS = new HashSet<>();

@Override

protected void initStrategies(ApplicationContext context) {

super.initStrategies(context);

Map matchingBeans =

BeanFactoryUtils.beansOfTypeIncludingAncestors(context, HandlerMapping.class, true, false);

for(HandlerMapping handlerMapping : matchingBeans.values()) {

if(handlerMapping instanceof RequestMappingHandlerMapping) {

RequestMappingHandlerMapping rmhm = (RequestMappingHandlerMapping) handlerMapping;

Map handlerMethods = rmhm.getHandlerMethods();

for(RequestMappingInfo rmi : handlerMethods.keySet()) {

PatternsRequestCondition prc = rmi.getPatternsCondition();

MAPPING_URLS.addAll(prc.getPatterns());

}

}

}

System.out.println(">>>>>>>>>>>>>>>>");

for (String string : MAPPING_URLS) {

System.out.println(string);

}

System.out.println(">>>>>>>>>>>>>>>>");

}

}

2、在web.xml中配置重写的MyDispatcherServlet

springServlet

com.huatech.web.listener.MyDispatcherServlet

contextConfigLocation

classpath:/spring-mvc.xml

1

springServlet

*.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值