目录

基本概念

代码实例


基本概念

这是一个很6的模式,以目前本人C++ Qt的技术,是做不出的,但Java已经有雏形了。

后端采用Spring Boot主要是回json数据,如下所示:

这里的数据都是来自数据库:

前端通过点击按钮向后端发送请求,从而获取数据:

相关的Nginx代理如下:

这里Vue application是192.168.164.1:8081

而Spring Boot为192.168.164.1:8080

在后期,这Spring Boot可以放到内网里面,这样外网就不能直接访问他了,

这里前端和后端是2个服务,但通过Nginx,这种方式,用户一般是体会不到的。

这里是vue中的请求代码:

  methods: {handleSubmit(){this.$axios({type: 'get',url: '/gra/list'}).then(res => {console.log(res)}).catch(err=>{alert(err)})}}

代码实例

因为目前还是半成品,就不发项目了,等实例完成,将会在其他的博文中给去全部的链接下载

Spring Boot结构

源码如下:

BarController.java

package com.gratestdemo.demo.controller;import com.gratestdemo.demo.dataobject.BarInfo;
import com.gratestdemo.demo.service.BarInfoService;
import com.gratestdemo.demo.vo.BarInfoVO;
import com.gratestdemo.demo.vo.BarVO;
import com.gratestdemo.demo.vo.ResultVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.ArrayList;
import java.util.List;@RequestMapping("/")
@RestController
public class BarController {@Autowiredprivate BarInfoService barInfoService;@GetMapping("/list")public ResultVO list(){List<BarInfo> barInfoList = barInfoService.findAll();List<BarInfoVO> barInfoVOList = new ArrayList<>();BarVO barVO = new BarVO();barVO.setName("柱状图");for(BarInfo barInfo : barInfoList){BarInfoVO barInfoVO = new BarInfoVO();barInfoVO.setCount(barInfo.getCount());barInfoVO.setValue1(barInfo.getValue1());barInfoVO.setValue2(barInfo.getValue2());barInfoVO.setValue3(barInfo.getValue3());barInfoVO.setValue4(barInfo.getValue4());barInfoVOList.add(barInfoVO);}barVO.setBarInfoVOList(barInfoVOList);ResultVO resultVO = new ResultVO();resultVO.setCode(0);resultVO.setMsg("成功");resultVO.setData(barVO);return resultVO;}
}

BarInfo.java

package com.gratestdemo.demo.dataobject;import lombok.Data;import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;@Data
@Entity
@Table(name = "gra_bar")
public class BarInfo {@Idprivate Integer id;private Integer count;private float value1;private float value2;private float value3;private float value4;
}

BarInfoRepository.java

package com.gratestdemo.demo.repository;import com.gratestdemo.demo.dataobject.BarInfo;
import org.springframework.data.jpa.repository.JpaRepository;public interface BarInfoRepository extends JpaRepository<BarInfo, Integer> {}

BarInfoServiceImpl

package com.gratestdemo.demo.service.impl;import com.gratestdemo.demo.dataobject.BarInfo;
import com.gratestdemo.demo.repository.BarInfoRepository;
import com.gratestdemo.demo.service.BarInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;@Service
public class BarInfoServiceImpl implements BarInfoService {@Autowiredprivate BarInfoRepository repository;@Overridepublic BarInfo findOne(Integer id) {return repository.findOne(id);}@Overridepublic List<BarInfo> findAll() {return repository.findAll();}
}

BarInfoService.java

package com.gratestdemo.demo.service;import com.gratestdemo.demo.dataobject.BarInfo;import java.util.List;public interface BarInfoService {BarInfo findOne(Integer id);List<BarInfo> findAll();
}

BarInfoVO.java

package com.gratestdemo.demo.vo;import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;@Data
public class BarInfoVO {@JsonProperty("count")private Integer count;@JsonProperty("value1")private float value1;@JsonProperty("value2")private float value2;@JsonProperty("value3")private float value3;@JsonProperty("value4")private float value4;
}

BarVO.java

package com.gratestdemo.demo.vo;import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;import java.util.List;@Data
public class BarVO {@JsonProperty("name")private String name;@JsonProperty("content")private List<BarInfoVO> barInfoVOList;
}

Result.java

package com.gratestdemo.demo.vo;import lombok.Data;@Data
public class ResultVO<T> {private Integer code;private String msg;private T data;
}

Vue前端关键代码:

main.js

// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
import Axios from 'axios'
import TodoList from './TodoList'Vue.config.productionTip = false
Vue.prototype.$axios=Axios/* eslint-disable no-new */
new Vue({el: '#app',components: { TodoList },template: '<TodoList/>',
})

TodoList.vue

<template><div><div><button @click="handleSubmit">获取</button></div></div>
</template><script>
export default {methods: {handleSubmit(){this.$axios({type: 'get',url: '/gra/list'}).then(res => {console.log(res)}).catch(err=>{alert(err)})}}
}
</script><style></style>

Java前端笔记-后端Springboot,前端vue,Nginx使前后端分离相关推荐

  1. 第十六节 springboot 打包vue代码实现前后端统一部署

    svbadmin学习日志 本学习日志是使用Springboot和Vue来搭建的后台管理系统: 演示地址:http://118.31.68.110:8081/index.html 账号:root 密码: ...

  2. vue和Java做数据交互_基于vue和springmvc前后端分离,json类接口调用介绍

    基于vue和springmvc前后端分离,json类接口调用介绍 版本要求:spring-3.2.9.RELEASE.vue-2.9.2.axios-0.17.1,其中axios作为http clie ...

  3. Java工作笔记-类型转换的一种思路(前后端分离、反射)

    这里主要是一种思路,前端可能会发送ajax请求.这个内容是json数据.这里面的数据可能全部是以字符串为主. 通常可以通过反射进行改变,如下的代码: 如下要转换成这些类型 不然当时候赋值的时候就麻烦了 ...

  4. Java网络商城项目 SpringBoot+SpringCloud+Vue 网络商城(SSM前后端分离项目)十六(商品排序,Thymeleaf快速入门,商品详情页的展示)

    Java网络商城项目 SpringBoot+SpringCloud+Vue 网络商城(SSM前后端分离项目)十六(商品详情页的展示) 一.商品排序 1.完善页面信息 这是用来做排序的,默认按照综合排序 ...

  5. Nginx实现前后端分离(springboot+vue)+双机互备

    背景介绍 项目采用springboot+vue开发,之 前项目布署时,都是采用pom中配置,把vue打包的dist文件copy到springboot项目中resource/static下做的,这样每次 ...

  6. Java网络商城项目 SpringBoot+SpringCloud+Vue 网络商城(SSM前后端分离项目)二十二(下单和微信支付)

    Java网络商城项目 SpringBoot+SpringCloud+Vue 网络商城(SSM前后端分离项目)二十(下单) 0.学习目标 会调用订单系统接口 实现订单结算功能 实现微信支付功能 1.订单 ...

  7. (硅谷课堂项目)Java开发笔记4:前端基础知识(二)

    文章目录 (硅谷课堂项目)Java开发笔记4:前端基础知识(二) 一.NPM 1.NPM简介 1.1.什么是NPM 1.2.NPM工具的安装位置 2.使用npm管理项目 2.1.创建文件夹npm 2. ...

  8. Java网络商城项目 SpringBoot+SpringCloud+Vue 网络商城(SSM前后端分离项目)十四(Spring Data Elasticsearch,将数据添加到索引库)

    Java网络商城项目 SpringBoot+SpringCloud+Vue 网络商城(SSM前后端分离项目)十四(Spring Data Elasticsearch,将数据添加到索引库) 一.创建El ...

  9. java学习笔记(三):前端miniUI控件库入门

    java学习笔记(三):前端miniUI控件库入门 最近在一家公司实习学习,一上来就需要学习了解相关的前端内容--miniUI.而这个内容自己本身并没有了解学习过,上手也是遇到了不少的问题,于是想把自 ...

最新文章

  1. GitHub开源:狗屁不通文章生成器
  2. Antenna Placement--POJ 3020
  3. php和python区别-什么是Python和php?Python与PHP有什么区别
  4. [Usaco2007 Oct] Super Paintball超级弹珠
  5. Keras学习代码—github官网examples
  6. HTML5实现涂鸦板
  7. 你给我这么多报表,让我如何是好
  8. iOS上架被拒理由及相关解决方案记录
  9. mysql 优化实例之索引创建
  10. Eclipse启动运行速度调优
  11. 《应用商务统计分析》第五章 定序回归
  12. 基于ESXi虚拟服务器搭建
  13. Linux内核时间管理和定时器
  14. pairs和iparis
  15. Using LSTM network generate MIDI files 用LSTM神经网络合成MIDI音乐
  16. PHP人民币小写数字转大写中文
  17. Linux修改网络支持巨型帧,RAC私网使用巨型帧 Solaris虚拟化环境修改MTU
  18. Moment.js获取当前时间格式化
  19. 正方形的面积用java写,java 编程 使用接口方式计算圆和正方形的面积(S)和周长(L)...
  20. MAPGIS-TDE 三维处理平台简介

热门文章

  1. mysql设置utf8_unicode_ci字符集php页面输出??乱码的解决方法
  2. Java 处理表格,也很轻松
  3. C语言很难学?不不不,只需要这几步!
  4. 今天的我叫史努比的飞鸽传书
  5. 飞鸽传书CSDN的搜索结果
  6. 09-03-06 FreeEIM 姗姗来迟
  7. 苹果零售店每平方英尺能创造4000美元
  8. Vue 3.0暂缓发布,前端同学暂时舒了一口气
  9. Adobe illustrator 抽丝剥茧选中多个点 - 连载 13
  10. 抖音张一鸣:我的大学四年收获及工作感悟