博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringBoot和Vue的工程化实践之分分合合
阅读量:6036 次
发布时间:2019-06-20

本文共 2483 字,大约阅读时间需要 8 分钟。


title: SpringBoot和Vue的工程化实践之分分合合 tags:

  • SpringBoot
  • VUE
  • 工程化 categories: springboot date: 2017-11-24 23:28:37

背景

由于现在普遍的前后端分离开发 【前端vuejs 后端springboot】那么存在如下工程化问题:

  1. 目前SpringBoot采用fatjar的形式发布
  2. Vue通过nodejs运行
  3. 发布时Vue打包出来的结果没有后端支持将无法访问

存在如下的方案

  1. 开发时将前后端项目联合开发,前端代码存在后端的子目录下【不建议】
  2. 开发时vue使用vue-cli的纯粹前端方案 部署时将生成的代码copy到后端项目中

方案

我们建议采用方案2,但是部署时不建议copy【不利于工程化的实践】

我们采用如下方式进行工程化的实践。【将vue代码copy到static文件夹下同样道理】

  1. 我们定义vue访问时采用固定前缀【比如ui】
  2. 访问ui目录时通过SpringBoot后端重定向到指定目录文件【更好的方案在生产上建议使用cdn或者nginx】
  3. 我们考虑增加SpringBoot的Resourcehandler

代码

定义对应映射关系

    resource.resource-handler-list[0].pattern=/ui/**     resource.resource-handler-list[0].location=file:/Users/qixiaobo/Downloads/ 复制代码

定义具体对应类

/**     * @author qixiaobo     */    public class ResourceHandler {        private String pattern;        private String location;             public String getPattern() {            return pattern;        }             public void setPattern(String pattern) {            this.pattern = pattern;        }             public String getLocation() {            return location;        }             public void setLocation(String location) {            this.location = location;        }    }复制代码

定义配置文件

/**     * @author qixiaobo     */    @ConfigurationProperties(prefix = "resource", ignoreUnknownFields = true)    public class ResourceHandlerConfig {        private List
resourceHandlerList; public List
getResourceHandlerList() { return resourceHandlerList; } public void setResourceHandlerList(List
resourceHandlerList) { this.resourceHandlerList = resourceHandlerList; } } @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("swagger-ui.html") .addResourceLocations("classpath:/META-INF/resources/"); registry.addResourceHandler("/webjars/**") .addResourceLocations("classpath:/META-INF/resources/webjars/"); List
resourceHandlerList = resourceHandlerConfig().getResourceHandlerList(); for (ResourceHandler resourceHandler : resourceHandlerList) { registry.addResourceHandler(resourceHandler.getPattern()) .addResourceLocations(resourceHandler.getLocation()); } } @Bean public ResourceHandlerConfig resourceHandlerConfig() { return new ResourceHandlerConfig(); }复制代码

如上我们就完成了映射关系

这样就能访问到指定的文件

转载地址:http://sclhx.baihongyu.com/

你可能感兴趣的文章
我的友情链接
查看>>
新的开始~~~
查看>>
字符串的扩展
查看>>
存储过程中调用webservice
查看>>
神奇语言 python 初识函数
查看>>
Windows安装Composer出现【Composer Security Warning】警告
查看>>
四 指针与数组 五 函数
查看>>
硬盘空间满了
查看>>
dutacm.club Water Problem(矩阵快速幂)
查看>>
深入JVM内核--GC算法和种类
查看>>
iOS的AssetsLibrary框架访问所有相片
查看>>
读书笔记三
查看>>
数论 - 最小乘法逆元
查看>>
企业架构研究总结(22)——TOGAF架构开发方法(ADM)之信息系统架构阶段
查看>>
接口测试(三)--HTTP协议简介
查看>>
周志华《机器学习》课后答案——第4章.决策树
查看>>
frameset分帧问题
查看>>
特殊样式:ime-mode禁汉字,tabindex焦点
查看>>
linux
查看>>
Layout父元素点击不到的解决办法
查看>>