回答这个问题,先看下面这段话 :
“为了在Java项目开发中提供一种更为简便的开发方式,来取代繁琐的项目搭建工作,Spring推出了Springboot项目。该项目可以让使用者更快速地搭建项目。系统配置、基础代码、项目依赖的jar包。只要在建立项目时,使用构建工具加入相应的Springboot依赖包,项目即可运行,无需关心版本兼容、部署war包等问题。”
这段话可以这样理解,你层层过关,终于到了公务员的岗位,上班第一件事就是领导让你给他准备个讲话稿。这个任务实际上包括两个部分,一个是写讲话稿,一个是布置讲话稿使用的环境。你如果从一张白纸开始写,对于你这样的小白,那是会惹出大事的,比较好的方法,是从网上下载很多别人写好的文章段落,你整合一下。例如开头的经济形势段落,下一步的工作重点段落,最后的具体措施段落,什么抓住,压实等套话都是优质和现成的,啥都有,你做的就是把这些东西整合一下,再放上一些你们单位的实际情况和问题。只写出稿子还不行,你还要把稿子放到电脑上,给领导布置好,再放上一瓶矿泉水,等于稿子的领导讲话的环境也部署好了,领导来了直接念稿子就行了(相当于运行),是否会给领导一个意外的惊喜。体会一下整合的力量是否很大?环境部署是否很重要?
以往的Java项目整合起来是比较繁琐复杂的,而且存在架包冲突的问题。另外Java编译后运行还是做很多的环境安装和配置,非常折磨人。SpringBoot是一个快速开发的框架,快速整合第三方框架(就是别人做好的功能组件,类似上面例子中你下载的别人写好的段落)。Springboot的整合集成了Maven,采用注解化,简化XML配置(这个下面讲)。内嵌HTTP服务器(Tomcat,jetty),默认嵌入Tomcat,最终以Java应用程序进行执行(就是Java代码编译完以后还集成进去运行环境,类似你把讲稿放到电脑上布置好,给讲稿一个会议能看的环境)。最终打包后以java应用程序就可以直接执行。这样就省去了Java程序开发前前后后的很多繁琐的事情,把你解放出来专心做你的应用。
看看下面这张图,能感受到Spring Boot帮我们做了很多Java开发的工作。
让我么能从一个基本的Spring Boot框架项目开始,探究一下Spring Boot项目的神秘
打开Spring Boot 的初始案例网站 https://start.spring.io/
(Spring Boot的这个网站速度比较慢,建议大家采用阿里的
https://start.aliyun.com/点击上方的Java脚手架)
设置参数。这个解释一下几个选项。
Project 项目咱们选Maven,理由上面说了。
Language 语言选Java语言
Project Metadata 项目元数据的选项设置方法如下:
Group 是项目组织唯一标识,实际对应项目中的package包。
Artifact 是项目的唯一的标识符,实际对应项目的project name名称,Artifact不可包含大写字母。
这里解释一下这个设置什么意思。如果咱们有个作业网上提交系统,根据文件名字区分不同的作业。这里面有个问题,你只能保证你的几个作业的名称不相同,但是你不知道其他人是否也起相同的作业名字。如果老师最后把所有人的作业合并到一起,其他人作业名字跟你的一样,就可能把你的覆盖了。解决这个问题的方法,是把每个人的作业放到不同的目录下,例如你的作业放到一个所属组织的标识的多层目录下,例如放到中国.高校.耿丹学院.软件项目实践.张三的作业这样的目录下,这个我们叫Group,package就是表示作业所放的目录。这个目录下有每次的作业,每次作业我们叫Artifact,就是作业的名称。这样的结构,不管老师怎么合并,都不会出现不同的同学因为作业名称相同文件被覆盖的问题了。
Java Version 对于JDK选择8,项目打包方式Packaging 默认为jar包,就是上面说的,最终把Java语言和运行环境打成一个运行包的模式。
点击Generate就可以下载初始化的基本的Spring Boot框架了。
然后用Java的开发工具Idea打开这个项目。
选择Ieda的[文件]--[打开]--[项目],选择我们刚才下载下来的基本Spring Boot框架的目录,点击[确定]
Idea的右下角的状态显示进度条不停处理,标识Idea会帮我们下载一些依赖等,这些要花费一些时间,别着急,慢慢等待......,直到右下角的进度条不动了为止。
我们看一下Spring Boot项目的结构
在我们下载下来的目录中,有这么一个文件,叫pom.xml,是项目的依赖文件。是XML文件格式(是一种可扩展标记语言)。
我们先说一下XML文件格式。例如老师让每个人提交自己的个人信息,例如姓名,年龄,家庭情况。如果你打开word随便写,例如写张小力,23,张大力,李美丽,老师不知道这些信息哪些是你的名字,哪些是你父亲的名字等,如果老师规定,每个信息前后都要加一个标识,标识用“<信息名称>”开头,用“信息名称>”结束,以免同信息混肴。所以就可以这样写
<姓名>张小力姓名>
<年龄>23年龄>
<家庭情况>
<父亲姓名>张大力父亲姓名>
<母亲姓名>李美丽母亲姓名>
家庭情况>
这样是否就是清楚很多?XML所谓的标识语言就是这样的模式。这个概念将来我们修改pom文件的时候会用到。
下面我们说说依赖
pom.xml定义了项目的依赖。
什么叫依赖,例如你去打篮球,你肯定要带着篮球、水杯、毛巾等,你打羽毛球,你肯定要带着羽毛球拍、羽毛球,你打乒乓球,能要带乒乓球拍、乒乓球等,这些就是依赖,没有这些你空手去玩不了。你可能说我每次出去锻炼就都带上,话是没错,就是没人这样做。所以每次你要去拿这些“依赖”,放到包里面带着,非常麻烦。
后来有一次你偶尔发现,你养的小狗非常聪明,你只要在一张纸上画上你要带的东西,这个小狗就自动跑去帮你叼来,放到包里面,不用你去跑去拿了,是不是很惊喜。
Idea就帮我们做下载和装配的工作,只要我们在pom.xml文件中把需要的依赖写好,自动就帮我们去下载,并安排好。
起步依赖
正如我们出去活动,第一个要需要一个运动包作为依赖,没有包什么也放不了,后续所有的东西都要根据包的大小来确定。
在Spring Boot项目中,必须继承依赖spring-boot-starter-parent,叫起步依赖,从这个继承依赖开始。
其他就是我们刚才定义的group,artifact,version版本,name项目名称,descriptionp项目描述等。
依赖的包就在
................. org.springframework.boot spring-boot-starter
中定义。下面这样
我们看一下生成的代码,大概了解一下Spring Boot代码的结构。
src这个目录是java的源代码的目录,我们看到,生成的代码放到了这个src目录下的cn目录的edu目录的gengdan目录的demo1目录下了,直面只有一个主文件,是Demo1Application.java源代码文件。里面有我们的入口main函数启动,执行Demo1Application中的类。
@SpringBootApplication是Sprnig Boot项目的核心注解,标识开启自动配置。
现在我们运行一下,在Demo1Application主文件右键,选择运行Demo1Application,或者右上角的运行快捷键,都可以让我们启动Demo1Application的执行。
在Idea的下方,可以看到运行的结果
因为我们是基本的框架,什么也没有输出,所示提示启动项目后,进程正常结束了。上面有个图标,可以自己在resources目录下增加一个banner.txt文件进行修改。
程序员的第一个程序总是从“Hello World!”开始。现在让我们在控制台上让程序输出“Hello World!” 。在Demo1Application主函数中增加 控制台输出语句
System.out.println("Hello World!");
然后再次运行
看到控制台上输出了“Hello World!”了。这个
System.out.println("显示内容");
后续我们在调试程序和控制台显示提示等场合会经常用到。
现在我们要实现在网页上显示Hello World。我们需要添加web依赖。
打开pom.xml依赖文件,添加web依赖。
要想依赖生效,还要重新让Maven重新下载一下新的依赖,具体方法是点击右侧的Maven,然后点一下这个重新下载依赖的标记,让Maven重新检查依赖,并下载新添加的依赖
然后,我们在src的包目录中,增加一个Controller包
名称叫Controller,就是控制器。控制器这个名称起的有点专业,就是类似咱们学生服务中心的对外服务窗口,其他都不对外,免得进入陌生人到里面不安全。Web程序的所有外界的访问都通过这个Controller来进来和应答,这样代码的其他部分都不对外了。
然后在这个软件包下增加一个java类,叫
HelloWorldController
在里面添加代码
import是引用web依赖,让下面的代码来用。
@Controller注解表示这个类可以接收HTTP请求(就是来自网页地址的请求)。
@RequestMapping注解作用是映射网页请求的URL路径,例如上面的代码,要用http://主机地址/hello这样的路径来访问。
@GetMapping表明是Get查询(还有Post查询等方式)
下面的return表示如果浏览器以get方式访问这个主机的/hello这个目录,就返回“hello world”字符串给浏览器。
我们再次运行这个程序,
可以看到,web服务器tomcat已经运行在本地的8080端口了,在等待网页的请求。
我们打开浏览器,地址栏输入
http://localhost:8080/hello/
注意,localhost表示本地主机,也可以用127.0.0.1代替,都是表示你现在的本地主机,不管你的真实IP地址是多少。另外注意,端口是8080,所以在本地主机后面要加冒号(注意是英文冒号:,不能是中文冒号:,中文冒号后面有点空,特别注意)。
然后在浏览器中,我们就看到我们的“hello world”了。
这个例子,让我们感受了依赖的强大。一个啥也干不了的空的基本框架,就是我们在pom.xml添加了一个web依赖,就能处理复杂的WEB请求了,真是amazing!
到此,我们今天学习了Spring Boot的大概的结构,并运行了我们的第一个Spring Boot 程序Hello Word!。
内容有点多,有点长,如果你能坚持看完,那为你的耐心点赞,也帮我在这篇文章上点个赞.
Idea Java开发环境,可以自行去网上搜索,建议安装绿色版,可以省去很多麻烦。
本课程的代码,可以从gitee上下载。
OneWeek: 一周Spring Boot +Vue 入门demo代码
访问gitee的同时也麻烦顺手在gitee上这个仓库上帮我点一下赞
感谢感谢!
gitee是大名鼎鼎的github的国内的代码托管网站,是企业常用的开发代码管理平台,大家逐渐学习使用。现在把最简单的上传功能说明一下,希望大家熟悉更加复杂的功能。
咱们要求把完成的项目和运行截图放到gitee上,简要说明如下:
https://gitee.com/
打开gitee,
注册后登陆
点击这个创建仓库
然后填写相关信息
需要设置成开源,但是这里不能直接设置,需要创建后通过仓库设置修改成公开
然后就进入到创建好的仓库
点最前面的你的用户名,可以看到你创建的所有的仓库,点击这个Spring Boot 入门案例,可以看到这个仓库的管理页面。文件这里可以创建文件夹和上传文件,克隆下载这里可以下载文件。管理这里可以对仓库进行管理。
我们先通过管理这个把仓库修改成开源
修改仓库属性,由默认的私有修改为开源,选中下面的承诺,然后保存,如果提示保存成功,并且属性是开源,就OK了。
然后返回你创建的仓库,点击README.md,点击编辑
通过微信获取其他工具截屏,然后粘贴到编辑器里面,注意需要修改一下图片的名字,否则相互覆盖了,下面这样
然后依次把结果粘贴上,就成了这样的
然后提交,你的仓库的首页就成了这样的了。
https://gitee.com/W2970/Sprint-Boot-demo/blob/master/README.md
然后再通过文件创建一个文件夹
然后进入创建的文件夹demo
选择上传文件,就可以把压缩的文件或者源代码上传上去了。
我做的比较粗糙,更加精细的,可以参考
https://gitee.com/y_project/RuoYi-Vue
更多gitee的进一步的操作,可以百度gitee的基本操作,推荐使用git工具操作gitee,更加专业。
可以参考这个博客
gitee:使用教程 - ShineLe - 博客园