首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何知道在 Spring 2.0 Controller 方法中的当前 servlet 上下文中映射了哪些 URL?

要在 Spring 2.0 Controller 方法中获取当前 Servlet 上下文中映射的所有 URL,可以使用以下方法:

  1. 注入 RequestMappingHandlerMapping 类型的 bean,该类型负责处理 Spring MVC 中的请求映射。
  2. 使用 RequestMappingHandlerMappinggetHandlerMethods() 方法获取所有映射的方法。
  3. 遍历 HandlerMethod 对象,获取每个方法的 RequestMappingInfo 对象,该对象包含了请求映射的详细信息,如 URL、HTTP 方法等。
  4. 提取所需信息并存储在一个集合中,以便后续使用。

示例代码如下:

代码语言:java
复制
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.mvc.method.RequestMappingInfo;
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping;

import java.util.Set;

@Configuration
public class MappingConfiguration implements WebMvcConfigurer {

    @Autowired
    private RequestMappingHandlerMapping requestMappingHandlerMapping;

    public Set<RequestMappingInfo> getAllMappings() {
        return requestMappingHandlerMapping.getHandlerMethods().keySet();
    }

}

在这个示例中,我们创建了一个名为 MappingConfiguration 的配置类,该类实现了 WebMvcConfigurer 接口,并使用 @Autowired 注解注入了 RequestMappingHandlerMapping 类型的 bean。我们还实现了一个名为 getAllMappings() 的方法,该方法返回一个包含所有映射信息的 Set<RequestMappingInfo> 集合。

通过这种方式,您可以在 Spring 2.0 Controller 方法中获取当前 Servlet 上下文中映射的所有 URL。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

java架构之路-(SpringMVC篇)SpringMVC主要流程源码解析(上)源码执行流程

需要注意是, Servlet 整个生命周期内,它 init() 方法只能被调用一次。...销毁 Servlet 之前,Servlet 容器会调用 Servlet destroy() 方法,以便让 Servlet 对象释放它所占用资源。... Servlet 整个生命周期中,destroy() 方法也只能被调用一次。...这种方式也是可以。 整个过程是如何实现? 1. dispatchServlet 如何找到对应Control? 2. 如何执行调用Control 当中业务方法?...面试要回答好上述问题,就必须得弄清楚spring mvc 体系组成。 spring mvc 体系组成   只是举了几个例子实现,SpringMVC还有很多实现方法

72140
  • 利用AOP实现操作日志

    getTarget()方法可以获得被代理对象,之后通过getClass()获取要访问类 那么如何去获得类方法名称呢?...JoinPoint还有一个方法叫getSignature()用于获取封装了署名信息对象,该对象可以获取到目标方 法名,所属类Class等信息 除此之外还可以通过getArgs()方法获取传入目标方法参数对象...后置通知: 结束时间可以直接用new Date().getTime()减去开始时间,即可获得访问时长了 我们还想要获取Controller执行注解url,有一下几个步骤: 当访问类、访问方法不为空且当前类不是...由于当前用户受到SpringSecurity控制,所以获取操作用户对象,也必须从SpringSecurity上下文中获取 具体代码如下,获取User非用户定义,而是SpringSecurity...();// 从上下文中获取当前登陆用户 User user = (User) context.getAuthentication().getPrincipal(

    52310

    SpringMVC4环境搭建实例详解(步步为赢)

    SpringMVC需要配置要求 为了将用户请求映射到分发器DispatcherServlet 去处理,需要在web.xml配置URL映射。...以下是一个声明和映射了Demo应用HelloWeb分发器DispatcherServlet 配置示例(就是servlet映射配置): <web-app id="WebApp_ID" version=...@RequestMapping注解用于请求URL映射到一个类或一个特定处理方法 package org.byron4j.helloWeb; import org.springframework.stereotype.Controller...你可以依葫芦画瓢定义一个方法处理同名URLPOST请求,试试,你仅仅需要在新方法中将@RequestMapping(method = RequestMethod.GET)替换为@RequestMapping...以下有几点比较重要: 你可以Controller处理方法调用其他业务方法去处理业务逻辑。 基于定义业务逻辑,你需要在该方法创建一个模型对象。

    25810

    Spring知识——注解

    spring开发中常用到注解 @PostConstruct bean初始化之后调用方法,可以用@PostConstruct标识该方法 @PreDestory bean被销毁前调用该方法,可以用@PreDestory...Responsebody 注解表示该方法返回结果直接写入 HTTP 响应正文(ResponseBody),一般异步获取数据时使用,通常是使用 @RequestMapping 后,返回值通常解析为跳转路径...如果同时指定了name和type,则从Spring上下文中找到唯一匹配bean进行装配,找不到则抛出异常   2....如果指定了name,则从上下文中查找名称(id)匹配bean进行装配,找不到则抛出异常   3....如果指定了type,则从上下文中找到类型匹配唯一bean进行装配,找不到或者找到多个,都会抛出异常   4.

    42800

    浅析 SpringMVC 原理和配置.

    一、原理       Spring MVC基于模型-视图-控制器(Model-View-Controller,MVC)模式实现,它能够帮你构建像Spring框架那样灵活和松耦合Web应用程序,将请求处理逻辑和视图中渲染实现解耦...二、使用 Java 配置     按照传统方式,像 DispatcherServlet 这样Servlet会配置web.xml文件 ,但是,借助于Servlet 3规范和Spring 3.1功能增强...我们会使用Java将DispatcherServlet配置Servlet容器。...这样JSP 2.0可使用${}来存取,JSTL中使用c:out。 默认为false。...()方法, * 我们要求DispatcherServlet将对静态资源请求转发到Servlet容器 * 默认Servlet上,而不是使用DispatcherServlet本身来处理此类请求

    1K90

    万字长文,超适合初学者SpringBoot学习笔记

    2.2.9 IDEA 右键,运行 Application 类 main 方法 通过控制台输出,可以看到启动SpringBoot框架,会启动一个内嵌tomcat,端 口号为 8080 ,上下文根为空...➢ Spring Boot父级依赖spring-boot-starter-parent配置之后,当前项目就是Spring Boot项目 ➢ spring-boot-starter-parent是一个...后缀 注意:当两种格式配置文件同时存在,使用是 .properties 配置文件,为了演示 yml ,可以 先将其改名,重新运行 Application ,查看启动端口及上下文根 我们以后授课过程...IDEA可以看到这两个属性不能被SpringBoot识别,背景是桔色 application.yml格式配置文件 # 设置端口号及上下文根 server : port : 9090 servlet...Spring boot开发RESTFul 主要是几个注解实现 ( 1 ) @PathVariable 获取url数据 该注解是实现 RESTFul 最主要一个注解 ( 2 ) @PostMapping

    1.6K30

    springMVC系列(二)——两种搭建方式

    和Bean名字映射,如URL为 “上下文/hello”,则Spring配置文件必须有一个名字为“/hello”Bean,上下文默认忽略。...> Controller,映射test->test.jsp,‘@requstmapping’url访问地址,return是访问目标网页地址。...以上配置可以发现,springMVC前端是DispatcherServlet,并且配置springMVC时,可以不配置spring入口ContextLoaderListener,也会有spring...上下功能,实际上springMVC上下文,当spring+springMVC整合在一起时,spring是得不到spring上下文中bean,但是springMVC可以获得spring上下文中...InternalResourceViewResolver是视图解析器,springMVCcontroller方法返回逻辑视图,视图解析器接收到controller方法返回逻辑视图,并将其解析成页面真正路径

    34020

    Spring MVC-04循序渐进之基于注解控制器

    应用基于注解控制器 该处示例是对前面几篇博文重写,区别于前几篇博文中示例在于 控制器类增加了@Controller注解 Spring配置文件增加了部分元素,下面详解 ---- 目录结构 ?...> servlet-mapping> web-app> 部署描述符servlet-mapping元素url-pattern设置为 / ,而不是之前实例action。...当viewProduct方法别调用时,请求URLid值将被复制到路径变量,并可以方法中使用。...> 若程序不在默认上下文中,则会被转换为 @import url(""/>");style> 我们这个示例上下文为chapter04b , 通过f12查看如下方式加载...---- @ModelAttribute 前面讲到Spring MVC每次调用请求处理方法时,都会创建Model类型一个实例。若打算使用该实例,则可以方法添加一个Model类型参数。

    91430

    Spring MVC 到底是如何工作

    项目安装 文中,我们将使用最新、最好Spring Framework 5。...DispatcherServlet:统一请求处理 HttpServlet.service()实现,会根据HTTP动词类型来路由请求,这在低级servlet上下文中是非常有意义。...这也意味着Spring需要为此处理程序找到适配器,该处理程序知道如何与处理程序“交谈”。 为了找到匹配请求处理程序,Spring检查HandlerMapping接口注册实现。...该解析器知道在哪里搜索视图,并提供相应视图实例。 调用视图render()方法后,Spring最终通过发送HTML页面到用户浏览器来完成请求处理。...; } } 结论 在这篇文章,我们详细了介绍Spring MVC框架请求处理过程。了解框架不同扩展是如何协同工作来提供所有魔法,可以让你能够事倍功半地处理HTTP协议难题。

    1.3K30

    Spring boot(0)一JAVA Web发展史和spring boo发展史

    6、 Spring boot(2016年更新此段落) 以往我们做Spring应用开发,要知道配置哪些类来让Hibernate和Spring一起工作,要知道如何配置view resolver来控制哪个模版进行视图层展示...有可能我们要配置很多第三方工具来去知道这个应用程序运行状态如何,有哪些参数,环境变量是什么。...Spring Boot 可以说是 Java 开发基于 REST 微服务 Web 应用程序最快方法之一。...以往我们做Spring应用开发,要知道配置哪些类来让Hibernate和Spring一起工作,要知道如何配置view resolver来控制哪个模版进行视图层展示。...有可能我们要配置很多第三方工具来去知道这个应用程序运行状态如何,有哪些参数,环境变量是什么。

    89120

    spring(基础七) spring mvc 使用步骤详解

    spring3 mvc是方法级别的拦截,拦截到方法后根据参数上注解,把request数据注入进去,spring3 mvc,一个方法对应一个request上下文。...打交道;struts2,一个Action对象对应一个request上下文。...设计思想上:struts更加符合oop编程思想, spring就比较谨慎,servlet上扩展。...spring mvc是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应,所以说从架构本身上spring3 mvc就容易实现restful url。...struts2是类级别的拦截,一个类对应一个request上下文;实现restful url要费劲,因为struts2 action一个方法可以对应一个url;而其类属性却被所有方法共享,这也就无法用注解或其他方式标识其所属方法

    56710

    从ContextLoaderListener谈Spring父子容器

    现象 使用springmvc开发时,我们经常在web.xml配置如下: <!...随后实例化初始化servlet,调用init方法springmvcDispatcherServelt父类,会将ContextLoaderListener中上下文作为servlet上下父容器...(经测试,子容器配置aop,不会对父容器起效果) 如果在两个容器中都有接口实现类,一个上下文中根据接口获取所有实现类bean,则只能获取这个上下实现类bean,不能获取所有的bean。...笔者曾经也有这样疑问,之前ContextLoaderListener下配置文件设置了aop,但是发现对controller不起效果。...web开发,普遍鼓励ContextLoaderListener上下文中保留非web内容,但它只不过是一个小小建议。

    95730

    Spring MVC使用AOP拦截Controller

    spring-servlet.xml两个配置文件,其中值得一提是:spring-servlet.xml配置文件可以直接丢在web文件夹下,而不用在web.xml配置,我亲自试过有效。...而spring-servlet.xml可以配置多个,它代表每个 DispatcherServlet有一个自己上下文对象(WebApplicationContext),称为子上下文(子容器),子上下文可以访问父上下文中内容...,但父上下文不能访问子上下文中内容。...那么问题来了,当spring加载父容器时候就会去找切入点,但是这个时候切入controller子容器,父容器是无法访问子容器,所以就拦截不到。...只要我们需要拦截方法前加上我们自定义注解,即可拦截该方法,并将日志计入数据库。非常方便,也不用如何改动之前代码。

    2.3K50
    领券