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秒就缓存一次。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏云计算教程系列

如何在Debian 8上安装Django Web框架

Django是一个功能齐全的Python Web框架,用于开发动态网站和应用程序。使用Django,您可以快速创建Python Web应用程序,并依靠该框架来完...

1702
来自专栏我的博客

mac安装memcache

安装memcached服务 brew install memcached 配置开机启动(用brew安装之后下面会提示怎么启动) ln -sfv /usr/loc...

4286
来自专栏杨龙飞前端

eclipse如何安装插件

1653
来自专栏老安的博客

zabbix 监控percona

1583
来自专栏晓晨的专栏

Jenkins 无法捕获构建脚本错误问题

编写构建脚本执行,发现脚本执行出错,不会中断构建过程,导致最后展现的构建结果是错误的。

1211
来自专栏Aloys的开发之路

Android真机安装sqlite3的方法

Android版本: 4.4.2 PS C:\Users\jiang> adb shell shell@hwH60:/ $ su - root # 此时输入s...

3499
来自专栏深度学习之tensorflow实战篇

查找python项目依赖并生成requirements.txt与安装,指定路径

Python项目中必须包含一个 requirements.txt 文件,用于记录所有依赖包及其精确的版本号。以便新环境部署。 我的是python -m 指...

4706
来自专栏北京马哥教育

【环境准备】测试驱动学习开篇

一、环境准备 使用pythonbrew加速你的环境构建 1、安装pythonbrew pip install pythonbrew [[ -s $HOME/.p...

3215
来自专栏SDNLAB

ONOS编程系列(三)应用模板

此文章承接ONOS编程系列(二)命令行命令与服务开发,本文将为你介绍ONOS编程系列(三)应用模板。 每次新建项目都要重新手动构建应用项目的骨架,而且应用都放在...

3545
来自专栏Python自动化测试

Appium之环境搭建(一)

本文章这里详细的介绍appium的环境搭建,关于它的设计哲学,可以到http://appium.io/documentation.html地址去看,...

1414

扫码关注云+社区

领取腾讯云代金券