Vue+SpringMVC---前后端分离极简尝试

2023-11-04

前后端分离】的开发方式是目前WEB开发中的一个大的趋势,随着各种前后端框架的出现,加上REST编程规范慢慢深入人心,前端后端之间通过更加轻量级、简洁高效的JSON作为数据传输格式,使得一切变得开朗起来,前后端分工更加明晰,前端被赋予了更多的功能,从而能分担原来由后端完成的工作,开发人员的学习成本明显下降。
通过VUE+SPringMVC的组合来尝试实现前后端分离的开发模式,下面给出具体的过程。

1.搭建前端
VUE是优秀的前端框架,搭建基于VUE的前端工程需要安装Node.js,并通过NPM包管理工具和VUE-cli脚手架工具来辅助构建前端工程,如下:
1
# 全局安装 vue-cli
$ npm install --global vue-cli
# 创建一个基于 webpack 模板的新项目
$ vue init webpack my-project
# 安装依赖,走你
$ cd my-project
$ npm install
$ npm run dev
1
2
3
4
5
6
7
8
这样我们就构建了一个前段项目的架子my-project,目录结构如下图:

然后再浏览器中可以看到如下的页面:

前端搞定,轮到后端

2.搭建后端
后端是用maven来构建的web项目,在eclipse(使用2017年6月发布的Oxygen)目录结构如下:

其中配置文件主要为pom.xml、web.xml、applicationContext.xml、SpringMVC-servlet.xml,具体内容如下。
pom.xml是maven的配置文件,如下

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>my-first-maven-project</groupId>
    <artifactId>hello-maven</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>hello-maven Maven Webapp</name>
  <url>http://maven.apache.org</url>

  <!-- <properties>
    <spring-version></spring-version>

  </properties> -->

  <!-- dependencyManagement配置有问题 -->
  <!-- <dependencyManagement>
    <dependencies>
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>3.8.1</version>
          <scope>test</scope>
        </dependency>

        https://mvnrepository.com/artifact/org.springframework/spring-webmvc
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>4.3.10.RELEASE</version>
        </dependency>


        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.7.9.1</version>
        </dependency>


    </dependencies>  


  </dependencyManagement> -->

  <!-- dependencies配置没有问题 -->
  <dependencies>
        <!-- Junit单元测试依赖包 -->
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>3.8.1</version>
          <scope>test</scope>
        </dependency>

        <!-- SpringMVC依赖包 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>4.3.10.RELEASE</version>
        </dependency>

        <!-- JSON处理依赖包 -->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.7.9.1</version>
        </dependency>

    </dependencies>


  <build>
    <finalName>hello-maven</finalName>
    <plugins>
        <plugin>        
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-maven-plugin</artifactId>
            <version>9.2.2.v20140723</version>
        </plugin>
    </plugins>
  </build>
</project>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
web.xml为整个web应用的配置文件

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
  <display-name>My first SpringMVC APP</display-name>

  <!-- Spring应用上下文,理解层次化的ApplicationContext -->
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/configurations/spring/applicationContext*.xml</param-value>
  </context-param>

  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener> 


  <!-- 配置允许跨域访问 
  <filter-mapping>
    <filter-name>CorsFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>  -->

  <!-- SpringMVC配置 -->
    <servlet>
        <servlet-name>SpringMVC-dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/configurations/spring/SpringMVC-servlet.xml</param-value>
            <!-- 默认是/WEB-INF/[servlet名字]-servlet.xml -->
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>SpringMVC-dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
applicationContext.xml为Spring配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:p="http://www.springframework.org/schema/p"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc.xsd">

    <!-- 使用注解的依赖注入(DI)管理 -->    
    <context:annotation-config/>

    <!-- 告诉Spring不用管理@controller标记的类 -->
    <context:component-scan base-package="com.muxinxin.springmvcdemo">
        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    </context:component-scan>

</beans>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
SpringMVC-servlet.xml为SpringMVC配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:aop="http://www.springframework.org/schema/aop"
    xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
                        http://www.springframework.org/schema/beans/spring-beans-4.0.xsd 
                        http://www.springframework.org/schema/mvc 
                        http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd 
                        http://www.springframework.org/schema/context 
                        http://www.springframework.org/schema/context/spring-context-4.0.xsd 
                        http://www.springframework.org/schema/aop 
                        http://www.springframework.org/schema/aop/spring-aop-4.0.xsd 
                        http://www.springframework.org/schema/tx 
                        http://www.springframework.org/schema/tx/spring-tx-4.0.xsd">

<!-- SpringMVC配置 -->                        
    <!-- 激活@required 等注释 -->
    <context:annotation-config/>    

    <!-- 设置使用注解的类所在的jar包 ,DispatcherServlet上下文,只搜索@Controller标记的类-->
    <context:component-scan base-package="com.muxinxin.springmvcdemo">
        <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    </context:component-scan>

    <!-- 启动基于注解的HandlerMapping,可以将请求参数绑定到控制器参数 -->
    <mvc:annotation-driven/>   

    <!-- 静态资源配置,css, js, imgs --> 
    <mvc:resources location="/resources/" mapping="/resources/**"/>

    <!-- 配置ViewResolver 
            可以配置多个ViewResolver
            使用order属性排序
            InternalResourceViewResolver放在最后
    -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
        <property name="prefix" value="/WEB-INF/jsps/"/>
        <property name="suffix" value=".jsp"/>
    </bean>


</beans>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
作为测试的controller为HelloMvcController.java

package com.muxinxin.springmvcdemo.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import com.muxinxin.springmvcdemo.model.Person;


@Controller
@RequestMapping("/hello")
public class HelloMvcController {

    @RequestMapping("/home")
    public String homeHandler(){
        return "home";
    }

    @RequestMapping("/test")
    public String testHandler(){
        return "test";
    }

    /**
     * 使用JSON作为响应内容
     */

    @CrossOrigin(origins="*",maxAge=3600)
    @RequestMapping(value="/getperson/{personID}",method=RequestMethod.GET)
     public @ResponseBody Person getPerson(@PathVariable int personID) {
        Person p = new Person();
        p.setName("Eric");
        p.setSex("male");
        p.setId(personID);
        return p;
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
使用jetty的maven插件作为web容器,配置在pom.xml中,在项目所在目录输入下面命令启动后端项目

mvn jetty:run
1


3.结果
对前端APP.vue做如下修改,数据异步请求使用的是Vue官方推荐的axios插件。
修改前

<template>
  <div id="app">
    <img src="./assets/logo.png">
    <router-view></router-view>
  </div>
</template>

<script>
export default {
  name: 'app'
}
</script>
1
2
3
4
5
6
7
8
9
10
11
12
修改后

<template>
  <div id="app">
    <h1>服务端数据为:{{serverData}}</h1>
    <img src="./assets/logo.png" @click="getData()">    
    <router-view></router-view>
  </div>
</template>

<script>
export default {
  name: 'app',
  data () {
    return {
      serverData: 'data from fake server'
    }
  },
  mounted: function () {
    this.getData()
  },
  methods: {
    getData () {
      console.log('-------getData')
      var that = this
 //192.168.1.101为后端IP地址     this.$http.get('http://192.168.1.101:8080/hello/getperson/33333')
                .then(function (response) {
                  console.log(response)
                  console.log(this)
                  that.serverData = response.data
                })
                .catch(function (error) {
                  console.log(error)
                })
    }
  }

}
</script>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
准备就绪后查看前端页面,变为


数据成功拿到!!!!!!!

4.遇到的坑(经验)
NRM
在使用npm安装依赖包的时候,可以用nrm这个插件来切换npm镜像,非常方便,推荐使用。
跨域
一般跨域的解决方式为:粗粒度和细粒度
粗粒度(全局):配置全局允许跨域
细粒度:在具体API上通过注解配置,如SpringMVC中的@CrossOrigin
5.总结
至此,使用VUE+SpringMVC的方式来实现前后端分离开发就被简单完成了。
————————————————
版权声明:本文为CSDN博主「trade-off」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/muxinxin880422/article/details/77970535

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Vue+SpringMVC---前后端分离极简尝试 的相关文章

  • SpringBoot通过HttpClient方式调用Restful接口

    前言 HttpClient相比于传统jdk自带的URLConnection 增加了易用性和灵活性 它不仅是客户端发送http请求变得容易 而且也方便了开发人员测试接口 提高了开发的效率 HttpClient是Apache Jakarta C
  • 完整的微信小程序支付开发记录(亲测)

    这次呢是开发小程序的支付功能 因为没有做过 特此记录 做一个小总结 以便以后使用以及给小伙伴们提供一个像我一样的小白一个参考 我也是一点一点摸索过来的 此文只针对开发支付流程而言以及出现的问题 其它则会略过 只讲解实际动手开发过程 名词和实
  • Spring、SpringMVC、Spring Boot、Spring Cloud 概念、关系及区别

    注 此文章转载于其他大神 一 正面解读 Spring主要是基于IOC反转Beans管理Bean类 主要依存于SSH框架 Struts Spring Hibernate 这个MVC框架 所以定位很明确 Struts主要负责表示层的显示 Spr
  • 图文:创建一个 idea + gradle + Springboot + MyBatis 项目

    最近项目用到了 springboot gradle 此文记录第一次使用 idea 创建 gradle springboot项目 部分参考网上资料 如有侵权 请联系我删除 1 new project gt spring initializr
  • JavaWeb开发 JSP技术详解

    目录 一 JSP简介 1 1 JSP介绍 1 2 常见的视图层技术 1 3 前后端分离开发方式 二 JSP运行原理 2 1JSP技术特点 2 2 JSP与Servlet区别 三 JSP标签的使用 3 1 原始标签 3 1 1 声明标签 3
  • Springboot自定义ThreadPoolTaskExecutor线程池多线程并发执行异步方法

    1 背景 当前因为工作需求 要发送大量Http请求 经过实践遍历发送需要6小时才能发送完毕 如果单线程发送请求会导致主线程阻塞 就会存在以下问题 前端用户等待响应时间过长 无法进行下一步操作 不利于用户操作系统 响应时间过长超过Tomcat
  • IDEA中JDK的配置与Maven的配置详解

    1 在项目结构中配置JDK的版本 1 将Moudle SDK改为1 8 version 1 8 注 这是自己的SDK 而Project SDK是系统自带的SDK 不是自己的SDK 2 选择自己的1 8版本并配置好JDK主路径 2 在设置 构
  • JAVA学习路线,面试复习方向指引

    前言 好久没有沉下心学习一波了 总结了一份简单的java学习内容 包含java开发大概的技术栈 后续每个部分寻找一些面试题专项学习 本篇先写一个大概的知识概括 后面逐渐加内容 慢慢丰满 有一起学习的朋友欢迎交流 共同进步 学问须学 不学则殆
  • Java Optional类说明及使用(JDK8)

    Optional类是JDK8提供的类 用于防止出现空指针异常 本篇旨在对该类进行说明及具体使用方式列举 一 序言 Option在使用中主要是为了简化传统Java的if else形式对null情况进行判断 既然为了简化代码编写 就必须要提到J
  • 简单粗暴的分布式定时任务解决方案

    分布式定时任务 1 为什么需要定时任务 2 数据库实现分布式定时任务 3 基于redis实现 1 为什么需要定时任务 因为有时候我们需要定时的执行一些操作 比如业务中产生的一些临时文件 临时文件不能立即删除 因为不清楚用户是否操作完毕 不能
  • 如何通过JDBC连接远程服务端的数据库

    如何通过JDBC连接远程服务端的数据库 1 本地navicat链接到远程服务端 2 Myeclipse创建JDBC 1 本地navicat链接到远程服务端 首先 打开远程服务器 远程数据库中新建查询 输入SQL语句 表示允许任何主机访问数据
  • mac os 安装 redis

    mac os 安装 redis 在redis官网下载 https redis io download 1 下载 在mac os系统 双指点击 finder 图标 选 Go to Folder 输入 usr local 另外开一个finder
  • 多个项目引用,如何打包项目成为war,jar包

    原文链接 多个项目引用 如何打包项目成为war jar包 推荐导入项目 IDEA如何导入多个maven项目在pox引入自建包 那么我们导入了多个项目的依赖关系后 随之而来产生多个项目 那我们打包的时候 应该如何将其建在一个war或war包
  • springboot 整合 mybatis 报错: Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException

    Caused by org springframework beans factory NoSuchBeanDefinitionException No qualifying bean of type com mybatis springb
  • 深入理解 == 与 equals 区别

    深入理解 与 equals 区别 这是一个老生常谈的问题了 也是在面试过程中常见的问题之一 网上所提供的常用回答是 equals比较值 比较值和引用 对java源码有了一定了解了之后回头再思考这个问题并不是那么的简单单一 java中的二元运
  • Java生成doc文档一(概念简介)

    在很多项目的实际工作中 后端可能需要将一些整合的数据输出成word pdf excel等形式的文档 最近我在项目也遇到这样的而需求 这里就记录下来是如何一步一步完成java后端生成doc文档的 由于现在word文档基本都是用到07以上 所以
  • maven集成cucumber,mvn test单元测试不运行

    maven集成cucumber mvn test单元测试不运行 项目已集成cucumber jacoco测试覆盖率100 在application项目添加单元测试 覆盖率下降 发现单元测试覆盖的语句覆盖率没有统计到 经试验 发现是appli
  • idea+springboot启动报错 ERROR org.apache.catalina.core.ContainerBase

    用idea导入了一个spring boot的项目 结果启动报错 ERROR org apache catalina core ContainerBase A child container failed during start tomca
  • 可能是把Docker的概念讲的最清楚的一篇文章

    编者的话 本文只是对Docker的概念做了较为详细的介绍 并不涉及一些像Docker环境的安装以及Docker的一些常见操作和命令 Docker是世界领先的软件容器平台 所以想要搞懂Docker的概念我们必须先从容器开始说起 如果你想和更多
  • 开源框架若依实战Demo学习笔记

    若依是个不错的框架 下面是我用他写的一个简单demo 以后会在此基础上进行进一步的开发 下面是整合的过程 我在整合的过程中可谓是一波三折 大家如果不想走弯路 那么这篇文章将对你很有帮助 首先 项目代码地址先列出来 方便大家下载使用 这是整理

随机推荐

  • 八大定位元素的方法

    ind element by xxx 查找符合规范的元素 并返回查找到的第一个元素 通过使用这个方法 find elements by xxx 查找符合规范的元素 并以列表的形式返回 一 八大定位元素的方法 1 根据元素id属性定位元素 重
  • 尝试运行项目时出错:无法启动程序

    很久木有写程序了 刚才偶尔写了个 竟然碰到如此问题 留个纪念 处理方法 把你打开的网络游戏关了 再试试就ok了
  • Error: Java exception was raised during method invocation

    项目中有用到 JavascriptInterface 来JS Java 通讯 但是 H5 报了一个异常 我在一个通讯方法里申请动态权限 后发现需要切换到主线程才行 其实是所有的 UI 操作都要切换到主线程 否则会抛出异常 后改为以下代码解决
  • [转载]TF-IDF模型的概率解释

    信息检索概述 信息检索是当前应用十分广泛的一种技术 论文检索 搜索引擎都属于信息检索的范畴 通常 人们把信息检索问题抽象为 在文档集合D上 对于由关键词w 1 w k 组成的查询串q 返回一个按查询q和文档d匹配度relevance q d
  • 自动化测试 —— unittest框架,理论和实操双管齐下

    unittest 1 什么是Unittest框架 python自带一种单元测试框架 2 为什么使用UnitTest框架 gt 批量执行用例 gt 提供丰富的断言知识 gt 可以生成报告 3 核心要素 1 TestCase 测试用例 2 Te
  • UVA-127 纸牌游戏 题解答案代码 算法竞赛入门经典第二版

    GitHub jzplp aoapc UVA Answer 算法竞赛入门经典 例题和习题答案 刘汝佳 第二版 简单的模拟题目 暴力即可 我使用了栈记录每个堆的数量 include
  • 软件测试分级理论

    软件测试是软件工程当中不可或缺的一个过程 在软件工程中 测试者充当 虚拟用户 对软件产品进行检验 只有经过严格测试的软件产品 才能发布给用户使用 只要有软件的地方 就有软件测试 软件测试是一个包罗万象的话题 这种 包罗万象 的具体表现之一就
  • 使用streamstring实现格式化输入

    目的 在windows系统写c 项目 常用sscanf s进行格式化输入 但是在ubuntu系统上发现sscanf s不可用 只有sscanf可用 但是它是c 99 的函数了 后面查阅知道 这个sscanf s函数是微软专有的函数 不具有跨
  • 关于hibernate在实体类增加字段启动项目报错

    如果出现这种情况 有可能涉及到hibernate或者mysql的缓存 因为第一次启动失败 mysql或者hibernate已经在数据库添加相应的字段 并生成缓存 然后之后的修改 启动项目也不会成功 因为hibernate会一直访问缓存 所以
  • cmake指令基础知识

    总结 写在前面 方便查看 1 cmake指令API文档 cmake指令 2 cmake指令中的常量 cmake变量 比如设置静态库和动态库输出目录的CMAKE ARCHIVE OUTPUT DIRECTORY和CMAKE LIBRARY O
  • 都9102年了还不懂动态图吗?一文带你了解飞桨动态图

    导读 飞桨PaddlePaddle致力于让深度学习技术的创新与应用更简单 飞桨核心框架已提供了动态图 DyGraph 相关的API和文档 并且还附有Language model Sentiment Classification OCR Re
  • 24. 两两交换链表中的节点 ----链表再学习

    https leetcode cn com problems swap nodes in pairs 思路如下图 蓝绿色箭头代表我们要构建的指向 红色箭头代表原来的指向 代码如下 Definition for singly linked l
  • C++ 实现两线段是否相交、相交情况、若相交求出交点坐标

    前段时间做计算机图形学的东西 现在闲下来 对代码稍作整理 都是些实用的函数 判断是否相交 X1 Y1 X2 Y2 前线 X3 Y3 X4 Y4 后线 x y 交点坐标 相交在前线上return 1 后线return 2 交于外面return
  • MacOS:Launchd&LaunchDaemon&LaunchAgent&.plist文件编写

    launchd官方文档 gt gt 详解文章1 gt gt 详解文章2 gt gt 什么是launchd 来自于官方文档 Wikipedia defines launchd as a unified open source service
  • java 基础 之 Comparable与Comparator

    曾经去一家公司面试 上来第一道问题就是问这个 原题目大概是 给你一个Student类 实现Comparable接口 如何写这个compareTo方法 当时很蒙 因为长时间的CURD 只是用的比较多 但是基础相对薄弱 结果必然是铩羽而归 为什
  • SQUASHFS error

    when i do flashcp operation and there are some errors happen asbelow SQUASHFS error xz dec run error data probably corru
  • vue如何在页面刷新时保留状态信息

    vue如何在页面刷新时保留状态信息 本篇转载至来自简书 仅供自己学习用 1 通过本地存储 state中的数据 页面刷新成功后再次从本地存储中读取state数据 vuex中的数据发生改变时触发localStorage的存储操作 localst
  • 讲解Oracle数据库SYS密码的找回方法

    1 采用命令行方式 sqlplus nolog connect as sysdba alter user sys identified by 新密码 alter user system identified by 新密码 2 用数据库管理软
  • mybatis DATE_FORMAT 格式化时间输出

    参考 http www cnblogs com yangy608 p 3950095 html 一 在oracle中 当想把字符串为 2011 09 20 08 30 45 的格式转化为日期格式 我们可以使用oracle提供的to date
  • Vue+SpringMVC---前后端分离极简尝试

    前后端分离 的开发方式是目前WEB开发中的一个大的趋势 随着各种前后端框架的出现 加上REST编程规范慢慢深入人心 前端后端之间通过更加轻量级 简洁高效的JSON作为数据传输格式 使得一切变得开朗起来 前后端分工更加明晰 前端被赋予了更多的