最简单的springboot+axios实例,并解决跨域问题

一、创建最简单的springboot项目

这里作者只创建了一个UserController

二、创建最简单的vue实例

1、这里的vue要先安装axios依赖

npm install axios

2、创建按钮和对应的函数,并且导入axios

3、开始使用axios发送请求

这里作者根据后端发送姓名和密码,axios第一个参数是url,第二个是传递对象

<template>
  <div>
    <!-- 发送请求测试按钮 -->
    <button @click="handlerSend">发送请求</button>
  </div>
</template>
<script setup>
//导入axios
import axios from 'axios';

//处理按钮的点击事件
const handlerSend = () => {
  console.log('发送请求');
  axios.post('/api/user/login',{
    username:'admin',
    password:'123456'
  }).then(res => {
    console.log(res);
  }).catch(err => {
    console.log(err);
  })
}
</script>

然后处理获得的结果

const handlerSend = () => {
  aixos.post('/api/user/login',{
    username:'admin',
    password:'123456'
  }).then(res => {
    console.log(res);
  }).catch(err => {
    console.log(err);
  })
}

4、解决跨域问题

在config.js文件中添加代理

 server:{
    proxy:{
      '/api':{
        target:'http://localhost:8080',
        changeOrigin:true,
        rewrite:path=>path.replace(/^\/api/,'')
      }
    }
    }
  }

三、运行效果

我们还可以把后端的数据显示在前端

四、源代码

源代码在gitee上https://gitee.com/zyGitee983/learning-notes.git

<think>好的,用户想了解Vue和Spring Boot结合的实例。我需要先确定用户的需求是什么。可能是想开发一个全栈项目,但不太清楚前后端如何协作。用户可能具备一定的Vue和Spring Boot基础,但缺乏整合经验。需要给出一个具体的例子,涵盖前后端的基本交互流程。 首先,我应该分步骤讲解,从项目结构开始,说明前后端如何分离。然后,创建后端Spring Boot的RESTful API,处理数据,比如简单的CRUD。接着,前端Vue部分如何调用这些API,展示数据。可能还需要涉及问题解决方法,因为前端和后端通常运行在不同端口。 接下来,具体的代码示例是必要的。比如,后端用@RestController创建接口,使用Spring Data JPA操作数据库。前端用axios发送HTTP请求,获取数据渲染到组件中。需要确保示例简单易懂,用户能快速上手。 另外,用户可能对技术栈的选择有疑问,比如为什么用Vue和Spring Boot。需要简要说明两者的优势,比如Vue的轻量性和响应式,Spring Boot的快速开发特性。同时,可能提到Maven或Gradle构建工具,以及如何配置前后端的依赖。 还要考虑常见的配置问题,比如Spring Boot的application.properties设置,Vue的代理配置解决。可能用户在实际操作中会遇到这些问题,提前说明可以避免困惑。 最后,总结整个流程,强调前后端分离的架构优势,建议用户按照步骤实践,遇到问题再查阅文档或社区资源。确保回答结构清晰,步骤明确,帮助用户顺利搭建起一个基础的全栈项目。</think>好的,我来为您介绍一个典型的 Vue + Spring Boot 全栈开发实例的搭建过程: # Vue + Spring Boot 开发实例(员工管理系统) ## 一、技术栈组成 前端:Vue3 + Vue Router + Axios + Element Plus 后端Spring Boot 2.7 + MyBatis Plus + MySQL 8.0 ## 二、后端实现步骤(Spring Boot) 1. 创建项目 ```bash mvn archetype:generate -DgroupId=com.example -DartifactId=employee-system -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false ``` 2. 实体类 Employee.java ```java @Data @TableName("t_employee") public class Employee { @TableId(type = IdType.AUTO) private Long id; private String name; private String department; private LocalDateTime createTime; } ``` 3. 控制器 EmployeeController.java ```java @RestController @RequestMapping("/api/employees") public class EmployeeController { @Autowired private EmployeeService employeeService; @GetMapping public List<Employee> getAll() { return employeeService.list(); } @PostMapping public boolean addEmployee(@RequestBody Employee employee) { return employeeService.save(employee); } } ``` ## 三、前端实现步骤(Vue3) 1. 创建项目 ```bash npm init vue@latest ``` 2. 员工列表组件 EmployeeList.vue ```vue <template> <el-table :data="employees"> <el-table-column prop="name" label="姓名"></el-table-column> <el-table-column prop="department" label="部门"></el-table-column> </el-table> </template> <script setup> import { ref, onMounted } from 'vue' import axios from 'axios' const employees = ref([]) onMounted(async () => { const response = await axios.get('http://localhost:8080/api/employees') employees.value = response.data }) </script> ``` ## 四、前后端交互关键点 1. 解决方案(Spring Boot配置) ```java @Configuration public class CorsConfig implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") .allowedOrigins("http://localhost:5173") .allowedMethods("*") .allowCredentials(true); } } ``` 2. Axios封装示例 ```javascript // src/utils/request.js const service = axios.create({ baseURL: 'http://localhost:8080/api', timeout: 5000 }) // 请求拦截器 service.interceptors.request.use(config => { config.headers['Authorization'] = getToken() return config }) ``` ## 五、项目运行流程 1. 启动后端 ```bash mvn spring-boot:run ``` 2. 启动前端 ```bash npm run dev ``` ## 六、完整功能扩展建议 1. 添加JWT身份验证 2. 实现分页查询功能 3. 增加文件上传模块 4. 添加Swagger接口文档 5. 集成Spring Security进行权限控制 这个实例展示了前后端分离开发的典型模式,通过RESTful API进行数据交互。实际开发中建议: - 前端使用Vuex/Pinia进行状态管理 - 后端采用DTO进行数据传输 - 添加全局异常处理 - 使用Logback进行日志管理 - 配置Nginx反向代理 完整的项目代码可以参考GitHub上的开源项目(例如搜索「vue-springboot-demo」),建议从简单功能开始逐步完善各个模块。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值