Vue+SpringBoot项目测试

Vue+SpringBoot项目测试

  我们做一个简单的项目功能测试一下这种前后端的开发方式。

功能需求

  项目功能需求:使用Vue编写前段内容,SpringBoot作为后端为其提供JSON数据。

Vue项目搭建

  Vue的项目搭建需要调出Vue的ui界面在ui界面中创建项目。

  调出命令行CMD,在其中输入vue ui就可以调出vue的项目管理器界面。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uyKYKfQk-1588128686366)(C:\Users\abcd-\AppData\Roaming\Typora\typora-user-images\image-20200428182831825.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7f3hcI9i-1588128686376)(C:\Users\abcd-\AppData\Roaming\Typora\typora-user-images\image-20200428183004919.png)]

在Vue的项目管理界面中点击创建。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MJt7jTib-1588128686379)(C:\Users\abcd-\AppData\Roaming\Typora\typora-user-images\image-20200428183058238.png)]

选择好要存放的路径,并点击创建

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mHe69JaU-1588128686381)(C:\Users\abcd-\AppData\Roaming\Typora\typora-user-images\image-20200428183222738.png)]

编写好要创建的项目名称,点击下一步。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KHMCtTi8-1588128686385)(C:\Users\abcd-\AppData\Roaming\Typora\typora-user-images\image-20200428183313726.png)]

选择手动配置,点击下一步。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-h9kGg0EI-1588128686388)(C:\Users\abcd-\AppData\Roaming\Typora\typora-user-images\image-20200428183410262.png)]

勾选需要的插件功能。在这里我们选择了Bable、Router、Vuex。关掉了Lin/Formatter。点击下一步。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oWNVn6nV-1588128686389)(C:\Users\abcd-\AppData\Roaming\Typora\typora-user-images\image-20200428183602456.png)]

点击创建项目。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GZurNPX5-1588128686391)(C:\Users\abcd-\AppData\Roaming\Typora\typora-user-images\image-20200428183636906.png)]

点击创建项目,不保存。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-txDTj2Fk-1588128686393)(C:\Users\abcd-\AppData\Roaming\Typora\typora-user-images\image-20200428183657993.png)]

等待创建完成,我们就可以来到一个项目仪表盘。就代表项目创建成功。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CPSPnY50-1588128686394)(C:\Users\abcd-\AppData\Roaming\Typora\typora-user-images\image-20200428183803483.png)]

可以点击任务,serve里面的运行,运行项目。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ltDBnAhg-1588128686395)(C:\Users\abcd-\AppData\Roaming\Typora\typora-user-images\image-20200428183857637.png)]

运行完之后可以访问localhost:8080就可以访问到初始页面。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Q1uOpaE6-1588128686396)(C:\Users\abcd-\AppData\Roaming\Typora\typora-user-images\image-20200428184010597.png)]

Vue项目编写

我们用过IDEA将新创建好的Vue项目进行导入。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-twjMuVRr-1588128686397)(C:\Users\abcd-\AppData\Roaming\Typora\typora-user-images\image-20200428184306477.png)]

导入之后如下所示。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-d2U5XAfL-1588128686398)(C:\Users\abcd-\AppData\Roaming\Typora\typora-user-images\image-20200428184519419.png)]

在控制台中输入 npm run sever 就可与运行Vue项目。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IiD3keDC-1588128686399)(C:\Users\abcd-\AppData\Roaming\Typora\typora-user-images\image-20200428184613093.png)]

我们在views文件夹下创建并编写一个Book.vue文件。作为我们的项目的页面。

<template>
    <!--页面部分-->
    <div>
        <table>
            <tr>
                <td>编号</td>
                <td>图书名称</td>
                <td>作者</td>
            </tr>
            <!--通过循环获取到其中的信息-->
            <tr v-for="item in books">
                <td>{{item.id}}</td>
                <td>{{item.name}}</td>
                <td>{{item.author}}</td>
            </tr>
        </table>
    </div>
</template>
<script>
    export default {
        name: "Book",
        data(){
            //虚假数据测试时使用
            return{
                msg:'Hello Vue',
                books:[
                    {
                        id:1,
                        name:'Java零基础实战',
                        author:'宁楠'
                    },
                    {
                        id:2,
                        name:'Vue零基础实战',
                        author:'张三'
                    },
                    {
                        id:3,
                        name:'Spring零基础实战',
                        author:'李四'
                    }
                ]
            }
        },
        created(){
            //通过跨端口传输,获取到SpringBoot里面的JSON数据
            const _this=this
            axios.get('http://localhost:8181/book/findAll').then(function (resp){
                _this.books=resp.data
            })
        }
    }
</script>
<style scoped>
</style>

我们在router文件夹下的index.js中编写跳转逻辑。

import Vue from 'vue'
import VueRouter from 'vue-router'
import Home from '../views/Home.vue'
//需要导入我们编写的页面
import Book from '../views/Book.vue'
Vue.use(VueRouter)
  const routes = [
  {
    path: '/',
    name: 'Home',
    component: Home
  },
//编写好页面跳转逻辑
  {
    path:'/book',
    component:Book
  },
  {
    path: '/about',
    name: 'About',
    // route level code-splitting
    // this generates a separate chunk (about.[hash].js) for this route
    // which is lazy-loaded when the route is visited.
    component: () => import(/* webpackChunkName: "about" */ '../views/About.vue')
  }
]

const router = new VueRouter({
  mode: 'history',
  base: process.env.BASE_URL,
  routes
})
export default router

数据库内容

数据库的内容放在了文件夹里面的book.sql,在MySQL中创建一个新的数据库名为library,运行sql语句即可。

SpringBoot编写

通过IDEA创建一个SpringBoot项目。项目中导入Lombox、Spring Web、Spring Data JPA、MySQL Driver。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0FcPR4XS-1588128686401)(C:\Users\abcd-\AppData\Roaming\Typora\typora-user-images\image-20200428190839377.png)]

创建完之后,导入yml配置文件。数据库内容和端口设置。内容如下

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/library?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
    username: root
    password: 123456
    driver-class-name: com.mysql.cj.jdbc.Driver
  jpa:
    show-sql: true
    properties:
      hibernate:
        format_sql: true
server:
  port: 8181

编写实体类。Book

@Entity
@Data
public class Book {
    @Id
    private Integer id;
    private String name;
    private String author;
}

编写实体类JPA接口。BookRepository

public interface BookRepository extends JpaRepository<Book,Integer>{
}

编写controller映射。BookHandler

@RestController
@RequestMapping("/book")
public class BookHandler {
    @Autowired
    private BookRepository bookRepository;
    @GetMapping("/findAll")
    private List<Book> findAll(){
        return bookRepository.findAll();
    }
}

编写配置器。Crosfig

@Configuration
public class Crosfig implements WebMvcConfigurer {
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                .allowedOrigins("*")
                .allowedMethods("GET", "HEAD", "POST", "PUT", "DELETE", "OPTIONS")
                .allowCredentials(true)
                .maxAge(3600)
                .allowedHeaders("*");
    }
}

跨端口传输配置

因为我们在8080端口上进行前段Vue项目的配置,在8181端口上部署我们的SpringBoot项目,所以想要在Vue上获取到SpringBoot的数据,就需要配置跨端口传输。以下是其中的一种方法。

我们通过配置Vue使Vue能够获取到SpringBoot中的JSON数据。

在vue项目的控制台上输入vue add axios 添加axios的扩展,代码中使用axios跨端口获取JSON数据。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-W5voo4t0-1588128686403)(C:\Users\abcd-\AppData\Roaming\Typora\typora-user-images\image-20200428195859150.png)]

效果展示

当我们启动Vue与SpringBoot项目时,链接访问localhost:8080/book

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-M8u8slym-1588128686405)(C:\Users\abcd-\AppData\Roaming\Typora\typora-user-images\image-20200428200219942.png)]
项目GitHub链接地址

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
JavaVue.js和Spring Boot是一组常用于构建现代Web应用的组合。它们各自扮演了关键的角色: 1. **Java**: 作为一种广泛使用的静态类型编程语言,Java以其平台无关性、安全性以及强大的企业级支持而闻名。在Spring Boot中,Java主要负责后端逻辑处理和数据库操作。 2. **Vue.js**: 这是一个轻量级的前端JavaScript框架,专注于构建用户界面。Vue.js提供了组件化的开发模式,易于学习且性能高效,特别适合单页面应用(SPA)的开发。 3. **Spring Boot**: Spring Boot是Spring框架的一个简化版本,它提供了一套“开箱即用”的配置,使得创建基于Spring的应用变得更加简单,包括自动配置、嵌入式服务器和依赖注入等。 一个典型的Java Vue+SpringBoot大作业可能会涉及到以下任务: - **后端设置**:搭建Spring Boot项目,设置路由和API,可能使用Spring Data JPA进行数据持久化。 - **前端开发**:使用Vue.js创建用户界面,处理表单验证、状态管理等交互逻辑。 - **RESTful API**:实现前后端数据交换,定义HTTP接口,确保数据安全。 - **模块化开发**:将应用划分为服务层、数据访问层和视图层,遵循单一职责原则。 - **权限管理**:实现基于角色的访问控制(RBAC),如Spring Security。 - **单元测试**:编写单元测试和集成测试,保证代码质量。 - **部署**:了解如何将应用程序部署到生产环境,如Docker容器或云服务器。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值