新建SpringBoot项目:集成HTTP库Axios

官网地址:http://www.axios-js.com/

打开terminal,进入web目录

安装Axios

sudo npm install axios@0.21.0(指定版本号) --save


在Home.vue中把后台数据取到本页面

分别启动前、后端,进行测试

一个技巧:IDEA全局收索:CTRL+SHIFT+F

参考如下代码:

package com.jiawa.wiki.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class CorsConfig implements WebMvcConfigurer {

    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                .allowedOriginPatterns("*")
                .allowedHeaders(CorsConfiguration.ALL)
                .allowedMethods(CorsConfiguration.ALL)
                .allowCredentials(true)
                .maxAge(3600); // 1小时内不需要再预检(发OPTIONS请求)
    }

}

添加后,重启后端应用,可以看到返回数据,在data中

### Spring Boot 和 Vue 的快速开发项目模板 #### 项目结构概述 为了实现一个高效的前后端分离架构,通常会采用如下目录结构[^1]: ```plaintext ├── backend/ │ ├── src/main/java/com/example/demo/ │ │ └── DemoApplication.java │ └── pom.xml └── frontend/ ├── public/index.html ├── src/App.vue ├── src/main.js └── package.json ``` #### 后端部分 (Spring Boot) 创建一个新的 Spring Boot 应用程序可以通过访问 [Spring Initializr](https://start.spring.io/) 来完成。选择 `Maven Project`、Java 版本以及所需的依赖项如 `Spring Web`, `Lombok` 等来初始化项目文件。 定义简单的 RESTful API 接口用于数据交互: ```java @RestController @RequestMapping("/api") public class HelloController { @GetMapping("/hello") public String hello() { return "Hello from Spring Boot!"; } } ``` #### 前端部分 (Vue2) 对于前端部分,在项目的根目录下新建名为 `frontend` 文件夹,并在此基础上构建 Vue CLI 项目: ```bash vue create frontend cd frontend npm install axios --save ``` 编辑 `src/components/HelloWorld.vue` 组件以调用后端接口获取消息并显示出来: ```html <template> <div>{{ message }}</div> </template> <script> import axios from 'axios'; export default { data() { return {message: ''}; }, mounted() { this.fetchMessage(); }, methods: { async fetchMessage() { try { const response = await axios.get('http://localhost:8080/api/hello'); this.message = response.data; } catch(error) { console.error("There was an error fetching the message!", error); } } } } </script> ``` #### 集成与部署 为了让两个独立的应用能够协同工作,建议配置代理服务器使得前端请求可以直接转发给后台服务。可以在 `frontend/vue.config.js` 中设置 devServer.proxy 属性指向本地运行的 springboot 实例地址。 ```javascript module.exports = { devServer: { proxy: 'http://localhost:8080' } }; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值