前言

  • 本文针对Spring+SpringMVC+Mybatis后台开发框架(基于maven构建)与vue前端框架(基于webpack构建)的项目整合进行介绍,对于ssm和vue单独项目的搭建不作为本文的重点,而着重介绍两者之间交互的要点。

SSM

  1. 项目结构
  2. 说明
    项目有service和web两个子项目组成,web依赖于service,其中web主要是control层内容,service则对应service层,而MyBatis内容放在了service项目中,spring配置文件放在了web项目中。将control层和service层分离成两个子项目,有利于项目的维护。

Vue


2.可以看出,这个是标准的使用webpack搭建的vue项目

前后端交互(重点)

重点来了,前后端交互无非是前端能够访问后端接口,并且成功接收到后端返回数据。在配置过程中,需要注意两个点,一是配置后端接口地址,二是跨域问题。

配置后端接口地址

在vue中,使用的是axios发送ajax请求和后台交互,我们需要main.js中配置axios默认访问地址。

  • 在src/main.js文件中增加
// 引用axios,并设置基础URL为后端服务api地址
var axios = require('axios')
axios.defaults.baseURL = "http://127.0.0.1:8080/blog/api"
//设置全局,每次ajax请求携带cookies
// axios.defaults.withCredentials = true
// 将API方法绑定到全局
Vue.prototype.$axios = axios

我们配置http://127.0.0.1:8080/blog/api为所有axios的默认请求地址,其中后台端口号为8080,而vue项目默认的端口号也为8080,所有需要修改vue项目中的默认访问端口号,改为8090(不与后台端口冲突即可)。

  • 在config/index.js修改

    测试代码:
created:function(){var data = Qs.stringify({});this.$axios.post('/check', data).then(successResponse => {this.responseResult = JSON.stringify(successResponse.data)if (successResponse.data.code === 200) {this.$notify({title: '成功',message: successResponse.data.message,type: 'success'});}else{this.$notify({title:"失败",message:successResponse.data.message,type:'error'})}}).catch(failResponse => {})}

配置好之后,运行项目发现前端仍然是无法访问后台接口,出现以下报错。可以看出是出现跨域问题了。

解决跨域问题

对于跨域问题,SpringMVC提供了注解@CrossOrigin处理该问题(想知道@CrossOrigin做了什么,请移步Spring @CrossOrigin 注解原理),只需要在对应的接口中增加@CrossOrigin即可(也可通过全局配置的方式设置,这里不做介绍)。
MainController.java:

package com.blog.web.controller;import com.blog.common.Result;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;@Controller
@RequestMapping("/blog/api")
public class MainController {private Logger logger = Logger.getLogger ( MainController.class );@RequestMapping ( value = "/check", method = RequestMethod.POST )@ResponseBody@CrossOriginpublic Result check () {logger.info("MainController run");Result result = new Result();result.setMessage("SSM vue前后端框架搭建成功");return result;}}

重启项目,返回正确结果。

源码

后台代码:SSMDemo
前端代码:VueDemo

ssm+vue前后端分离框架整合(附源码)相关推荐

  1. ssm vue架构图_ssm+vue前后端分离框架整合实现(附源码)

    前言 本文针对Spring+SpringMVC+Mybatis后台开发框架(基于maven构建)与vue前端框架(基于webpack构建)的项目整合进行介绍,对于ssm和vue单独项目的搭建不作为本文 ...

  2. 这几个SpringBoot前后端分离项目(附源码),改改就能换钱。。。

    点击上方 "编程技术圈"关注, 星标或置顶一起成长 后台回复"大礼包"有惊喜礼包! 每日英文 Happiness comes when we stop comp ...

  3. 【官方推荐】Laravel7 + Vue2.0前后端分离框架通用后台源码

    laravel7 + vue + element-ui的后台极速开发框架,采用前后端分离架构,安全性 (JWT 校验.中间件.验证器.路由.异常处理.权限控制) 网址:http://139.155.4 ...

  4. java版Spring Cloud+Vue 前后端分离+VR全景电子商务源码

    涉及平台:平台管理(包含自营店面).买家平台(PC端.H5/公众号.小程序.APP端(IOS/Android).微服务(了解源码可+求球:1零③8七7④62陆) 核心架构:Spring Cloud.S ...

  5. 【JAVA程序设计】基于SSM+VUE前后端分离的物流管理系统

    基于SSM+VUE前后端分离的物流管理系统 零.项目获取 一.项目简介 二.开发环境 三.项目技术 四.系统架构 五.运行截图 零.项目获取 获取方式(点击下载):是云猿实战 项目经过多人测试运行,可 ...

  6. springboot+vue前后端分离框架

    项目介绍 一款 Java 语言基于 SpringBoot2.x.MybatisPlus.Vue.ElementUI.MySQL等框架精心打造的一款前后端分离框架,致力于实现模块化.组件化.可插拔的前后 ...

  7. SpringBoot+Vue前后端分离框架源码

    项目介绍 一款 Java 语言基于 SpringBoot2.x.MybatisPlus.Vue.ElementUI.MySQL等框架精心打造的一款前后端分离框架,致力于实现模块化.组件化.可插拔的前后 ...

  8. springboot+vue前后端分离框架快速搭建

    项目介绍 一款 Java 语言基于 SpringBoot2.x.MybatisPlus.Vue.ElementUI.MySQL等框架精心打造的一款前后端分离框架,致力于实现模块化.组件化.可插拔的前后 ...

  9. Java前后端分离小程序商城源码saas模式

    小程序商城源码使用高性能的Java语言开发,采用目前流行的微服务前后端分离框架,拥有完整的后台,小程序商城源码是一个拥有多租户.多公众号.多小程序管理的框架,小程序商城源码基础功能完善,适合二开.学习 ...

最新文章

  1. 安卓html5桌面提醒,HTML5桌面通知提示功能的实现
  2. kafka系列三、Kafka三款监控工具比较
  3. Linux学习之系统编程篇:程序、进程、并发、并行
  4. This EntitySet of type xxx does not support the 'Edit' operation
  5. 为何美洲蝉中意17这个质数?
  6. poj1006生理周期(中国剩余定理)
  7. 基于 VS 2010 阐述C# 4个特性
  8. Java-编程规范与代码风格
  9. 心语收集12:我以为要是唱的用心良苦,你就会对我多点在乎
  10. Excel打印时,如何带上当前时间~
  11. 【动态规划】最大子段和问题,最大子矩阵和问题,最大m子段和问题
  12. cad细等线体不显示_cad字体cass cass如何修改字体
  13. MAC安装淘宝镜像NPM
  14. FPGA 设计算法篇 —— 格雷码编解码原理及实现
  15. ZZNUOJ_C语言1007:鸡兔同笼(完整代码)
  16. QGIS下载各种DEM的插件(SRTM 90m/30m -ALOS 30m -Cop 30m/90m-NASADEM Global DEM)
  17. Spark 学习【二】
  18. 外汇基础学习1:结售汇
  19. 【肌电信号】脉搏信号分析(去噪+特征提取)matlab源码含GUI
  20. 日本电视制造商起诉惠普 最高索赔1亿美元

热门文章

  1. python中的json.loads_Python中使用json.loads解码字符串时出错:
  2. 惠普HP CQ40 重装XP SP3系统后重启无声
  3. RPC框架-hessian学习
  4. 菜单和工具条---QT
  5. 如何制作鼠标hover后图片列表的放大效果
  6. MySQL客户端工具mysqladmin常用参数和命令总结
  7. ajax 跨域请求post请求,ajax POST跨域请求完美解决
  8. 【Java王者荣耀项目】,在家玩王者不如自己开发王者,仅用一天时间便可完成。
  9. 华为nova5ipro的优缺点_华为nova5i Pro手机值得买吗 华为nova5i Pro手机详细评测
  10. 红米10X和荣耀Play4TPro参数对比-拍照哪个好?