Spring Boot,更新前端而不重新启动应用程序

Posted

技术标签:

【中文标题】Spring Boot,更新前端而不重新启动应用程序【英文标题】:Spring Boot, update frontend without restarting the application 【发布时间】:2014-08-04 23:50:10 【问题描述】:

在 Spring Boot 中进行前端部分更新而不重新启动应用程序?

【问题讨论】:

你所说的“前端”具体是什么意思? JSP?百里香? html + JS 文件? 没有 JSP 的 HTML + CSS + JS 【参考方案1】:

我为静态网页和 css 找到的最佳解决方案是 https://***.com/a/39334398/6467734 对于加载代码(包括 jsp)而不重新启动服务器,您可以使用 Spring Boot Devtools 依赖项

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <optional>true</optional>
</dependency>

【讨论】:

【参考方案2】:

对于 JSP 文件,请尝试设置 server.jsp-servlet.init-parameters.development=true

【讨论】:

兄弟,你救了我的命。【参考方案3】:

将以下内容添加到 src/main/resources/application.properties:

spring.resources.static-locations[0]=file:src/main/resources/static/
spring.resources.static-locations[1]=classpath:/static/

“文件:”会导致刷新浏览器时重新加载内容

或者,可以在运行时发现文件资源位置并以编程方式添加。 我希望这会有所帮助。

【讨论】:

【参考方案4】:

在 Intellij IDEA 中以 Debug 模式运行您的项目,您将获得相同的效果。

或者将你的静态外部化。

@Configuration
public class MvcConfig extends WebMvcConfigurerAdapter 

    private String extStaticPath = "/var/www/site1/";

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) 
        registry.addResourceHandler("/static/**")
                .addResourceLocations(extStaticPath)
                .setCachePeriod(0);
    

【讨论】:

【参考方案5】:

您可以在 Spring Boot 中尝试 developer tools。每当类路径上的文件更改时,使用 spring-boot-devtools 的应用程序将自动重新启动。更多信息如何工作here

【讨论】:

【参考方案6】:

我是 Eclipse 用户(通过 Spring Tool Suite),如果应用程序在调试模式下运行,我在重新加载静态内容方面从来没有任何问题。只需右键单击主类和“Debug As->Java App”(或“Spring Boot App”,都一样)。您还必须确保将工作区配置为“自动构建”,但据我所知,这是默认设置。

我无法为其他 IDE 的用户提供这样具体的建议,但我确信它们都具有相同的功能。

【讨论】:

以上是关于Spring Boot,更新前端而不重新启动应用程序的主要内容,如果未能解决你的问题,请参考以下文章

如何在运行时更改日志级别而不重新启动 Spring Boot 应用程序

删除表中的每条记录时重新启动Id = 1? (角度 + Spring Boot + MySQL)

Spring Boot 热部署

Spring Boot 热部署(转)

使用 Angular 7 前端启动 Spring-Boot 应用程序时无法加载资源错误(缺少资源)

以编程方式重新启动 Spring Boot 应用程序/刷新 Spring 上下文