• 【前后端分离的Web系统开发 Springboot Vue】系列教程(二)- Springboot项目初始化


    【前后端分离的Web系统开发 Springboot Vue】系列教程(二)- Springboot项目初始化

    本系列教程适合有一定编程语言基础的,想往Web开发这块发展的程序员阅读,文章尽量用浅显易懂的语言解释一些复杂的概念,并会针对一些配置进行详细的介绍。本系列文章采用的技术栈是Springboot+Vue

    1. Springboot介绍

    基本概念

    SpringBoot是以Java语言为核心进行开发的,由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域成为领导者。
    SpringBoot基于Spring4.0设计,不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。另外SpringBoot通过集成大量的框架使得依赖包的版本冲突,以及引用的不稳定性等问题得到了很好的解决。

    优点

    以上是百度百科对Springboot的介绍,我只截取了一部分,概念众多,但Springboot到底是什么呢?Springboot的出现是为了解决什么样的问题?我想可以总结为以下几个部分:

    • 采用Maven,Gradle等工具进行依赖管理,并自动化构建过程。如果你曾经接触过这方面的开发培训或者教学,一定记得到处下载XX.jar驱动包的日子吧。万一拿错了版本,又会出现一大堆问题。在Springboot中,不需要了,全部由Maven或者Gradle帮你搞定,你只要在对应的文件中设定好你要什么包,都会帮你下载下来,自动设置为依赖。在Maven项目中,对应的文件是pom.xml
    • 简化了Springboot的搭建。还记得纯粹的SSM框架或者SSH框架的项目吗,你要完成这样一个项目,需要写一大堆xml文件进行配置,然后才能正常启动Spring。在Springboot中,这些基础的配置全部帮你做好了。
    • 内置了Tomacat或者Netty容器。得益于包管理器和自动配置的实现,Sprinboot直接内置了Web容器,无需再在自己的电脑上安装Tomcat了,Springboot项目中内置了这些容器,开箱即用。
    • 对开发者友好。上面这么多优点,核心目的只有一个,对开发者的开发友好。毕竟,是开发者天天面对着代码。简洁,结构简单易懂,可塑性强,开发起来方便多了。此外,用的人多,网上的教程也多。特别是在写代码这块,一定要谨记一点,你绝对不会是第一个遇到这个问题的人

    缺点

    当然,凡事有优点,也会有缺点。当然你会问,Springboot是业界成熟的解决方案,怎么会有明显的缺点呢?其实,是有的。正是因为Springboot太成熟了,很多事情他都帮我们开发者干好了,万一开发中出现了问题,定位起来是十分麻烦的。
    我曾经遇到一个问题,在照葫芦画瓢的项目开发过程中,多写了一个注解,直接导致了系统编译错误。后面定位了一整天BUG,才发现,原来那个注解别有用处,并不是我理解的那样。一个注解写的时候只有一行,甚至只有一个英文单词的长度,但是在spring中,要做的事情可能就非常多了。
    所以,终身学习很重要

    2. 开发环境

    说了这么多,实际上还是要引出重点,也就是开发系统,写代码。虽然说,采用windows系统自带的记事本写代码也完全没有问题,但是我想都0202年了也不至于沦落到这种地步吧。因此呢,用一个良好的IDE(集成开发环境)是非常有必要的。

    选择IDE

    本教程和后续的内容中,后端Springboot项目都选择了IDEA作为集成开发环境

    那么,对于Springboot这种框架的系统,大概有以下几种可选项:

    • IntelliJ IDEA(推荐)。好东西,特别好用。Idea可以使用高校后缀的邮箱获得免费使用权限,或者拿出漂亮的开源项目申请,当然,也可以使用黑科技。
    • Eclipse(合适)。如果你嫌麻烦,想直接搞个免费的,那Eclipse也是一个比较好的选择。不过你需要安装一些插件来丰富你的使用体验。
    • 文本编辑器+插件(个性化定制)。指的是采用vscode,sublime之类的纯粹的文本编辑器,安装上一大堆定制的插件,来个性化定制使用环境。好处是这类文本编辑器启动起来很快,插件也能随心所欲安装。想搞得很炫酷很与众不同,可以采用这种方式。

    安装JDK

    本教程和后续的内容中,后端Springboot项目采用的JDK版本是9

    安装完了插件是不够的,还需要到下载适合的JDK来配置自己本机的开发环境。一般来说,JDK不是越高越好,要考虑到兼容和后续的部署问题。我个人喜好采用7或者8的版本进行开发,视情况而定。
    至于如何安装,可以根据自己的操作系统百度对应的教程。

    安装Maven

    Maven的版本没有过多的要求,只要不是远古版本就行了。我个人采用的是3.6.0

    如果你安装的IDE是Idea,那么Idea会协助你安装maven,如果是其他的IDE,那我就不清楚了。以防万一,还是介绍一下吧。
    还记得Maven是什么吗,对了,是个包管理器,协助你管理jar包。他本身也需要安装到你的电脑上的。可以到 Maven官网下载最新版。
    安装的过程还是比较简单的,就不详细展开了。但是,安装完了,强烈建议配置一下镜像源。什么意思呢?Maven的默认下载jar包的仓库是在国外,数据包还得从太平洋底下的光缆传到上海,再发送到你的电脑上,就变得特别慢了。因此,可以配置一下国内的镜像源,下载的包就会快了很多。
    配置Maven镜像源比较简单,百度就能解决问题。配置完后,从Maven上下载包明显快了许多。
    ————————————————————————————
    现在你可以暂时休息一下,去安装好IDE和JDK吧
    题外话,搜索引擎是个好东西,尽管搜到的内容质量参差不齐,但是你要学会了分辨真假优劣,那你就厉害了。这也就是所谓的“解决问题的能力”
    毕竟,我这篇教程肯定也是你通过搜索引擎找到的嘛

    3. 项目初始化

    讲了这么多,终于到了真正的项目初始化环节了!按照以下的步骤进行项目的建立:

    • 打开Idea,选择“Create New Project”(创建一个新项目)
    • 左侧项目模板中选择“Spring Initializr”(Spring项目初始化),然后选择“Project SDK”(Java版本),其他选项默认即可,选择“Next”进入下一步
    • 编辑一下项目的组织名,产品名,包名,介绍等内容,定义一下你的项目是要做些什么。这里可以默认。当然,这里可以在“Type”中切换项目为“Maven项目”或者“Gradle项目”,一般情况,我们默认即可。
    • 选择项目的依赖。用MySQL要依赖,用Redis要依赖,用百度地图也要依赖。这里,我建议先选择图片右边的两个个依赖。记住,依赖可以在开发过程中随时添加删减。
    • 确认项目名称和保存的路径
    • 等待Idea帮你安装好依赖,然后直接按绿色三角启动项目,控制台没有报错,就代表了项目启动成功啦!
    • 进入 http://localhost:8080/ 如果访问成功,则代表你大功告成了。但是要注意哦,我们现在还没有配置任何路径匹配,所以返回的页面代码是404,也就是未找到页面。

    4. 结语

    如果你的运行很顺利

    介绍到这里,你已经真正完成了一个Springboot项目的建立,也成功让项目跑起来了!
    但是,你的项目目前还不具备任何能力对外提供服务,所有的路径都是404。不要有挫败感,尽管不具备功能,但是项目能正常启动,代表了接下来你就可以专心开发了。
    下一篇教程,就会介绍如何跑起来你的项目中的第一个接口,以及项目的目录结构等内容的介绍

    如果你的运行失败了

    不要慌张!如果你是第一次接触这块,出问题很正常。出了问题要怎么办呢?我给出我自己的经验,大家可以参考。

    • 要定位问题。首先呢,一定要定位问题,搞明白这个问题发生在哪?怎么发生的?如果你在建立项目时就弹框报错,那么这个问题一定是你的安装过程中出现了问题,或者是某种设置没调整好。如果是在运行项目时出现了报错,一个很好的定位方式就是看控制台异常报错。如果你什么也不知道,那请善用搜索引擎,比如把报错信息拿去搜搜,一定能找到问题出现的地方,有时候还能直接找到解决的方法。请记住,你没有那么幸运,你绝对不会是第一个遇到这个问题的人
    • 要思考问题的成因。你会说,我都搜索到了解决问题的方法了,还想那成因干嘛?请注意了,在你搜索到的解决方案里,可能会有坑人的解决方案。有的开发者对于问题也是一知半解,他自己瞎折腾,诶,一不小心解决问题了,一时兴奋,立刻写了一篇教程发到网上,告诉你这样这样做就能解决问题。有没有考虑过问题的发生原因?有没有考虑这个解决方案做了,会不会出另外的问题?
      我就曾经遇到一个小问题,当时是个小白,新上手一个服务器,但是ping不到服务器上,所以我就去搜解决方案如何开端口。那教程咔咔咔写了一堆,告诉我把防火墙关了,所有问题都解决了....还好我机智,没听教程的鬼话,只开了需要的端口,你猜怎么着?还是ping不通。原来啊,那个服务器对外还要经过堡垒机,我个人没有权力开发对外访问的端口...
    • 解决问题。找到成因,或者找不到成因,但是猜测解决方案用下去也不会有什么副作用,那我建议你就先试试。如果一切正常,那最好不过了。如果还是原来的问题没解决,那我建议还原了解决方案,再找一篇新的教程去解决。所谓的控制变量法嘛。
      我个人建议,代码层面的修改时,想要还原回去没改动前的状态,用git是最好不过的了。至于git怎么安装,我会放在番外里。

    最后,感谢大家的支持,下一篇将尽快写出,请看完小广告再走哦。

    5. 小广告

    本人承接中小型的Web系统项目、爬虫程序和系统集成、PC桌面应用程序等项目,从设计、实现到部署一条龙服务
    当然如果你是在校学生,在课设、毕设方面也有类似的需求,也可以和我联系,提供有偿指导,注意,是指导哦
    如果你有意愿想找我开发或者指导,请发生邮件至 wyxworkmail@163.com或者联系QQ:3050419833,并简单介绍一下你的需求。
    如果我自认为有能力承担你的项目或者接受你的求教,我会在第一时间反馈的哦

  • 相关阅读:
    树莓派的入网方式和远程连接
    数据结构与算法之递归(C++)
    c++中字符串输入注意的问题
    基于视觉的机械臂分拣(二)
    基于视觉的机械臂分拣(一)
    数据结构与算法之折半查找(C++)
    数据结构与算法之顺序查找(C++)
    ROS之USB摄像头识别二维码问题解决
    机械臂开发之正运动学
    利用vs pcl库将多个PCD文件合并成一张PCD地图
  • 原文地址:https://www.cnblogs.com/axiangcoding/p/13229548.html
Copyright © 2020-2023  润新知