如何在Spring Boot 2.x上运行SPA webapp

TL; DR向下滚动,找到下面的资源并品尝。

最常见的具有SPA风格的Web服务器,所有路由都将转发至/index。html。 Yes。 Spring boot also can do this。 but it's pretty hard to figure it out until now。 let's do this。

解决这个问题有多少困难? 触摸application.properties? 没有。 写@组态? 不。 写@ControllerAdvice? NAH。 为什么不认为简单的柠檬容易挤?

只是写一个类@Controller并实施错误控制器接口。 就这样。 这是代码!

import org.springframework.boot.web.servlet.error.ErrorController;
import org.springframework.http.HttpMethod;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@Controller
public class SpaErrorController implements ErrorController {

    @RequestMapping("/error")
    public Object error(HttpServletRequest request, HttpServletResponse response) {
        // place your additional code here (such as error logging...)
        if (request.getMethod().equalsIgnoreCase(HttpMethod.GET.name())) {
            response.setStatus(HttpStatus.OK.value()); // optional.
            return "forward:/index.html"; // forward to static SPA html resource.
        } else {
            return ResponseEntity.notFound().build(); // or your REST 404 blabla...
        }
    }

    @Override
    public String getErrorPath() {
        return "/error";
    }
}

不要考虑其他事情,只需编译并运行即可。 您将永远不会看到whitelabel错误页面,并且所有路由都将转发至index。html。 it's SPA style。

我在现实世界中使用此解决方案。 是的。。。很好。

但是请记住,将前端和后端分开将是更好的选择,因为它具有可重用,易于部署的优点以及您所知道的其他优点。

from: https://dev.to//composite/how-to-run-spa-webapp-with-spring-boot-2-x-5gdo

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值