Spring Boot:定制static path mappings

简介:

Spring Boot:定制URL匹配规则一文中我们展示了如何调整URL请求匹配到对应的控制器方法的规则。类似得,也可以控制应用程序对静态文件(前提是被打包进部署包)的处理。

假设我们需要通过URLhttp://localhost:8080/internal/application.properties对外暴露当前程序的配置。

How Do

  • 在WebConfiguration类中添加相应的配置,代码如下:
@Overridepublic 
void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry.addResourceHandler("/internal/**").
            addResourceLocations("classpath:/");
}
  • 通过mvn spring-boot:run启动应用程序
  • 通过postman访问http://localhost:8080/internal/application.properties就得到下列的结果

通过配置项对外暴露程序的配置信息

分析

通过addResourceHandlers(ResourceHandlerRegistry registry) 方法可以为应用程序中位于classpath路径下或文件系统下的静态资源配置对应的URL,供其他人通过浏览器访问。在这个例子中,我们规定所有以“/internal”开头的URL请求会在classpath:/目录下查找信息。

  • registry.addResourceHandler("/internal/*")方法添加一个资源处理器,用于注册程序中的静态资源,该函数返回一个ResourceHandlerRegistration对象,这个对象可以进一步配置。/internal/*字符串是一个路径模式串,PathMatcher接口用它匹配对应的URL请求,这里默认使用AntPathMatcher进行匹配。
  • 由上个方法返回的ResourceHandlerRegistration实例调用addResourceLocations("/classpath:/")方法来规定从哪个目录下加载资源文件。这个目录路径或者是有效的文件系统路径,或者是classpath路径。

PS:通过setCachePeriod(Interger cachePeriod)方法可以设置资源处理器的缓存周期——每隔cachePeriod秒就缓存一次。


    相关文章
    |
    6月前
    |
    Java 应用服务中间件 Maven
    SpringBoot 项目瘦身指南
    SpringBoot 项目瘦身指南
    142 0
    |
    6月前
    SpringBoot+Mybatis-Plus+PageHelper分页+多条件查询
    SpringBoot+Mybatis-Plus+PageHelper分页+多条件查询
    158 0
    |
    6月前
    |
    XML Java 数据库连接
    Spring Boot的数据访问之Spring Data JPA以及Hibernate的实战(超详细 附源码)
    Spring Boot的数据访问之Spring Data JPA以及Hibernate的实战(超详细 附源码)
    106 0
    |
    27天前
    |
    SQL JSON Java
    mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
    这篇文章介绍了如何在Spring Boot项目中整合MyBatis和PageHelper进行分页操作,并且集成Swagger2来生成API文档,同时定义了统一的数据返回格式和请求模块。
    44 1
    mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
    |
    1月前
    |
    缓存 NoSQL Java
    Springboot自定义注解+aop实现redis自动清除缓存功能
    通过上述步骤,我们不仅实现了一个高度灵活的缓存管理机制,还保证了代码的整洁与可维护性。自定义注解与AOP的结合,让缓存清除逻辑与业务逻辑分离,便于未来的扩展和修改。这种设计模式非常适合需要频繁更新缓存的应用场景,大大提高了开发效率和系统的响应速度。
    48 2
    |
    5月前
    |
    运维 Java 关系型数据库
    Spring运维之boot项目bean属性的绑定读取与校验
    Spring运维之boot项目bean属性的绑定读取与校验
    53 2
    |
    5月前
    |
    存储 运维 Java
    Spring运维之boot项目开发关键之日志操作以及用文件记录日志
    Spring运维之boot项目开发关键之日志操作以及用文件记录日志
    59 2
    |
    5月前
    |
    Java Maven
    springboot项目打jar包后,如何部署到服务器
    springboot项目打jar包后,如何部署到服务器
    415 1
    |
    5月前
    |
    XML 运维 Java
    Spring运维之boot项目打包jar和插件运行并且设置启动时临时属性和自定义配置文件
    Spring运维之boot项目打包jar和插件运行并且设置启动时临时属性和自定义配置文件
    53 1
    |
    5月前
    springboot2.4.5使用pagehelper分页插件
    springboot2.4.5使用pagehelper分页插件
    141 0