问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

零基础学习基于Vue和SpringBoot的前后端分离Web应用

发布网友 发布时间:2024-08-19 23:20

我来回答

1个回答

热心网友 时间:2024-08-22 08:10

许多人在学习开发前后端分离的Web应用时,常常感到困惑,面对众多的框架和工具,难以入手。卫琴姐姐将为大家介绍一个基于Vue和SpringBoot的前后端分离Web应用,虽然功能简单,却涵盖了前后端分离架构、后端分层、创建过程和部署方式,帮助大家快速掌握开发流程。

本文参考书籍如下。

图1展示了本范例的架构,前端视图使用了Vue框架的query.html,后端控制器层包括DispatcherServlet类和PersonController类。后端模型层包括PersonService接口和PersonServiceImpl实现类,以及Person类。

图1 前后端分离的Web架构

例程11是query.html的源代码。Vue根组件包含三个模型变量。

例程1 query.html

Vue根组件模板中的v-if指令用于控制元素输出,仅当isFind变量为true时显示。

通过浏览器访问query.html,在页面上输入用户id,Vue根组件的findPerson()方法会通过Axios请求访问后端的PersonController,返回相应的Person对象的JSON格式数据。

query.html将接收到的Person信息展示到页面上,参见图2。

图2 query.html展示查询到的Person信息

2. 创建控制器类

Spring MVC框架将资源视为Bean组件。自定义的PersonController控制器类也属于Bean组件,参见图2。

例程2 PersonController.java

PersonController类代码简短,使用了四个来自Spring MVC框架的注解,轻松整合到Spring MVC框架中。

2.1 @Controller注解

PersonController类用@Controller注解标识,向Spring MVC框架表明自己的控制器类身份。Spring MVC框架在启动时,会扫描Java类,遇到用@Controller注解标识的类,就会将其注册为控制器类型的Bean组件,纳入自己的管辖之中。

2.2 @ResponseBody注解

PersonController类使用@ResponseBody注解标识,作用是使得请求处理方法返回JSON格式的响应正文。当一个控制器类联合使用@Controller注解和@ResponseBody注解,可以用@RestController注解来代替。

2.3 @Autowired注解

PersonController类有一个personService成员变量,用@Autowired注解标识,表示PersonController类向Spring MVC框架请求资源,要求提供作为Bean组件的PersonService对象。

2.4 @RequestMapping注解

PersonController类有一个getPerson(int id)请求处理方法,调用模型层的PersonService对象的findPersonById()服务方法,查询与id匹配的Person对象。

2.5 请求处理方法的参数

getPerson()方法有一个参数id。Spring MVC框架与控制器类之间有高度默契,调用getPerson()方法时会自动读取客户请求中的请求参数id,将其赋值给getPerson()方法的参数id。

2.6 请求处理方法的返回类型

大力:“getPerson()方法返回Person对象,而@ResponseBody注解表明请求处理方法返回JSON格式的响应正文,这不是很矛盾吗?”

卫琴姐:“有了Spring MVC框架暗中相助,就不矛盾了。Spring MVC框架会根据@ResponseBody注解的指示,自动把getPerson()方法返回的Person对象转换为JSON格式,再发送给客户端。”

大力:“看来控制器类为Spring MVC框架打工是很省力的,Spring MVC框架会亲力亲为地分担一部分工作,比如读取请求参数,把控制器类返回的Java对象转换为JSON格式的数据。”

3. 创建模型层的服务类

模型层的PersonService接口定义了供控制器层调用的服务方法,参见图3。

例程3 PersonService.java

模型层的PersonServiceImpl类实现了PersonService接口,参见图4。

例程4 PersonServiceImpl.java

PersonServletImpl类的findPersonById(int id)方法模拟根据id查询匹配的Person对象的过程。在实际应用中,通常会到数据库中去查询业务数据,而本范例做了简化,从一个存放了若干Person对象的persons映射中查找匹配的Person对象。

PersonServletImpl类用@Service注解标识,向Spring MVC框架表明自己的服务类身份。Spring MVC框架在启动时,会扫描Java类,遇到用@Service注解标识的类,就会将其注册为服务类型的Bean组件,纳入自己的管辖之中。

在PersonController类中,可通过@Autowired注解从Spring MVC框架中获得该Bean组件。

4. 在IDEA中创建采用Spring Boot框架的Web应用

本范例的开发步骤如下。

(1)在IDEA中选择菜单FileNewProjectSpring Initializr,创建基于Spring Boot的helloapp应用,在配置窗口中设置应用的名字、根路径、包的名字、JDK的版本等信息。

(2)在依赖配置窗口中增加Spring Web依赖。

(2)把helloapp应用的所有Java类的源文件拷贝到helloapp\src\main\java\mypack目录下。把query.html文件拷贝到helloapp\src\resources\static目录下。helloapp应用的主要目录结构参见图6。

图6 helloapp应用的主要目录结构

Spring Boot框架自动为helloapp应用创建的主要目录以及文件如下。

本范例中的query.html文件放在helloapp\src\resources\static目录下,自创建的Java源文件都放在helloapp\src\main\java目录下。HelloApplication类则由Spring Boot框架自动创建,代码如下。

5. 在application.properties文件中配置Tomcat

在application.properties文件中,通过以下代码指定helloapp应用的URL根路径为“/helloapp”:Tomcat的默认监听端口为8080,如果要改为其他端口,可以设置server.port属性,例如以下代码把端口设为80。

6. 运行HelloApplication类

在IDEA中选择菜单Run-》Run HelloApplication类,就会运行HelloApplication类。HelloApplication类会启动内置的Tomcat,然后自动把helloapp应用发布到Tomcat中。

通过浏览器访问PersonController类的getPerson()方法,URL为http://localhost:8080/helloapp/find?id=1。Spring MVC框架会根据该请求调用PersonController对象的getPerson()方法,返回的页面参见图7。

图7 PersonController对象的getPerson()方法返回JSON格式的Person信息

也可以通过浏览器访问http://localhost:8080/helloapp/query.html。query.html的JavaScript脚本通过Axios API访问PersonController类的getPerson()方法,然后把得到的Person对象的信息展示到网页上。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
简单分享艾草泡脚的功效和禁忌 编办系统可以改吗 大庆市机构编制委员会办公室内设机构 《破刃之剑》的经典台词 破刃之剑漫画简介 破刃之剑漫画44 破刃之剑 是不是 烂尾了? 哪些属暖通专业 暖通分哪些专业 暖通专业与暖通空调专业有区别吗 400分能上哪个大学 高考成绩400分能上什么学校? 电脑开机几分钟就黑屏了怎么回事 如何建立一个微信群(群主如何建立一个微信群) 牛奶炖桃胶的做法,牛奶炖桃胶怎么做 史前最完整的SpringBoot项目框架 牛奶炖桃胶怎么做 桃胶炖牛奶需要多久 理解SpringBoot项目结构目录 桃胶炖牛奶需要炖多久才能吃 牛奶炖桃胶需要多久 高中物理探究安培力。答案是D,求过程 高中物理安培力 百度网盘在电脑上怎么找共享文件夹 母亲节快乐的祝福语有哪些 精选祝母亲节快乐的祝福语短信20句 2024最简短的母亲节祝福语80句 2024母亲节温馨语录 F.TIsland Distance 歌词分配 精选祝母亲节快乐的祝福语30句 母亲节最打动人心的祝福语 文科400分能上什么大学? 基于vue的工厂车间管理系统 毕业设计 springboot+Vue+mysql 基于java SpringBoot框架和Vue的智能停车场管理系统 基于springboot的医疗挂号管理系统 毕业设计 springboot+Vue+mysql 基于springboot的医院后台管理系统 毕业设计 springboot+Vue+mysql GitHub上火了这份堪称神级的SpringBoot手册,竟出自华为麒麟之手_百度... springboot和springcloud区别 方舟手游打完boss怎么出去 剑士kenshi怎么赚钱_剑士赚钱技巧介介绍 pmp有哪些课程 男生撩妹子的网名 很撩妹子的网名 2021年男生最撩妹微信网名 2021年男生最撩妹微信个性网名 能够吸引女生注意的男生单身网名,适合撩妹用的名字 九号单轮平衡车众筹价999元,单轮设计重量更轻,续航里程和速度如何? ...还没收到。可就是在网站查不到,麻烦帮我看下我的单号是w213358... ...楼建筑图地下室一层外墙内侧写着MLC2433 LC2233 FLC2233 LC2133W 为什么蛾子会咬人? 女人有外遇影响家里的财运吗 女人出轨一次后的表现-有哪些因素造成 作戏造句