【问题标题】:Reinit/reload SimpleUrlMapping in Spring Boot 2在 Spring Boot 2 中重新初始化/重新加载 SimpleUrlMapping
【发布时间】:2019-06-19 16:39:03
【问题描述】:

我们在 Spring Boot 2.1 应用程序中使用 SimpleUrlHandlerMapping 从数据库加载映射信息:

@Bean
public SimpleUrlHandlerMapping simpleUrlHandlerMapping() {
    SimpleUrlHandlerMapping simpleUrlHandlerMapping = new SimpleUrlHandlerMapping();
    simpleUrlHandlerMapping.setOrder(Ordered.HIGHEST_PRECEDENCE);
    simpleUrlHandlerMapping.setInterceptors(requestMonitoringInterceptor);

    Map<String, Object> urlMap = getUrlMapFromDb();
    simpleUrlHandlerMapping.setUrlMap(urlMap);

    return simpleUrlHandlerMapping;
}

它工作正常,但是如果映射被更改,那么我们需要重新启动服务器以在启动期间加载新的映射。应用程序管理员没有服务器访问权限,因此他/她无法重新启动应用程序。

有什么方法可以在不重启服务器的情况下从应用程序本身重新加载映射?

【问题讨论】:

    标签: spring spring-boot spring-mvc


    【解决方案1】:

    通过tomcat manager gui重新加载战争

    【讨论】:

    • 我需要一个在应用程序内部工作的解决方案,因为应用程序管理员无权访问任何其他资源。我已经扩展了我的问题。
    • 创建一个服务,该服务将重新加载此 SimpleURLMappingBean 或使用以下代码向其传递此依赖项的任何其他 bean:stackoverflow.com/questions/51218086/…
    • 谢谢,我能够按照链接中的建议重新加载属性,但是它并没有解决映射问题。新的映射被忽略。在我看来,在启动时映射初始化期间还会发生其他事情。
    • 可能你需要重新加载另一个 bean 来重新加载这些属性。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-26
    • 2012-06-18
    • 2016-10-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多