我有一个带有自定义contextPath(/ api)的springboot应用程序,该服务器在我的Servur中,但在我的开发计算机中的本地主机中没有。
所以我有一个rest控制器,如何映射以下网址:
-在我的计算机上locathost http://localhost:8080/article/last-articles
-在我的伺服器中https:/// api / article / last-articles
在我的应用中,我有一个HandlerInterceptorAdapter(FirebaseTokenInterceptor)像这样初始化
@Configuration
class WebMvcConfig : WebMvcConfigurer {
@Autowired
lateinit var firebaseTokenInterceptor : FirebaseTokenInterceptor
var logger = LogFactory.getLog(WebMvcConfig::class.java)
@Value("#{servletContext.contextPath}")lateinit private var contextPath : String
override fun addInterceptors(registry: InterceptorRegistry?) {
super.addInterceptors(registry)
logger.debug("contextPath : ${contextPath}")
//take care about context path to adapt rules
var articlePath = "${contextPath}/article/**"
logger.debug("rule : ${articlePath}")
registry?.addInterceptor(firebaseTokenInterceptor)?.addPathPatterns(listOf(articlePath))
}
}
它可以在我的本地主机上运行,但不能在我的服务器上运行,不会调用拦截器。 我尝试在规则开头添加和不添加contextPath,结果相同。
登录服务器或确定
2018-09-19 15:03:34.972 DEBUG 1 --- [ main] c.p.e.api.configuration.WebMvcConfig : contextPath : /api
2018-09-19 15:03:34.977 DEBUG 1 --- [ main] c.p.e.api.configuration.WebMvcConfig : rule : /api/article/**