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

前言

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

SSM

项目结构

8b36e18dbe09cb0ab19f441cb8d919e3.png

说明

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

Vue

8e9c262ff0cdb750fafa331aaad2dd44.png

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修改

a76e67ba40fdf3a227509f8634bde431.png

测试代码:

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 => {})

}

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

f48e47a99a8d9106b17449ade7397d13.png

解决跨域问题

对于跨域问题,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

@CrossOrigin

public Result check () {

logger.info("MainController run");

Result result = new Result();

result.setMessage("SSM vue前后端框架搭建成功");

return result;

}

}

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

6a013db5962e3f0da482ae90a8748f0c.png

源码

后台代码:SSMDemo

前端代码:VueDemo

到此这篇关于ssm+vue前后端分离框架整合实现(附源码)的文章就介绍到这了,更多相关ssm+vue前后端分离内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

  • 2
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这是一个基于SSM(Spring、SpringMVC、MyBatis)框架Vue.js的毕业设计管理系统。该系统采用了前后端分离的设计思想,后端使用SSM框架进行开发,前端则使用Vue.js构建用户界面。整个系统功能丰富,界面美观,适合作为毕业设计的参考项目。 系统功能: 用户管理:包括用户注册、登录、修改个人信息等功能。 项目管理:包括项目的创建、编辑、删除、查询等功能。 任务管理:包括任务的分配、接收、完成情况跟踪等功能。 文档管理:包括文档的上传、下载、在线预览等功能。 进度管理:包括项目进度的查看、编辑、更新等功能。 技术特点: 前后端分离:采用前后端分离的设计思想,使得前端和后端可以独立开发、部署和扩展。 SSM框架:后端采用SSM框架实现了业务逻辑、数据访问和页面渲染的分层处理,提高了代码的可维护性和可扩展性。 Vue.js:前端采用Vue.js框架实现了数据驱动的视图层,提高了用户界面的交互性能和响应速度。 RESTful API:系统提供了RESTful风格的API接口,方便与其他系统集成和调用。 源码介绍: 后端源码:包括了SSM框架的配置、实体类、DAO层、Service层、Controller层等代码,以及数据库脚本等文件。 前端源码:包括了Vue.js项目的配置文件、组件、路由、状态管理等代码,以及静态资源文件(如CSS、图片等)。 演示视频: 提供了一个演示视频,展示了系统的主要功能和操作流程,帮助用户快速了解和使用该系统。 部署说明: 提供了详细的部署说明文档,包括环境要求、部署步骤、常见问题解答等内容,方便用户部署和运行该系统。 通过这个毕设管理系统,用户可以方便地管理和跟踪毕业设计的进度和任务,提高毕业设计的工作效率。同时,该系统也是一个优秀的学习和实践SSM框架Vue.js技术的项目案例。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值