【Java全栈学习】一、SpringBoot介绍/特点/创建/结构&热部署
SpringBoot快速上手
Springboot的介绍
Springboot旨在简化SSM(Spring\SpringMVC\Mybatis)的配置过程
Springboot的特点
之所以能够简化操作,Springboot做到了:
- 约定优于配置” ,用大量的默认配置代替手动配置的过程
- 使用内嵌的Tomcat,用户无需再手动打包war文件让服务器使用
- 定制Staters启动器,简化了Maven配置(帮你配置好了,简化以前可能需要写几十个依赖的情况,现在写一两个即可)
- 使用纯Java配置
- 后续维护时,Springboot提供了各种监控检测功能
(如若需要开发复杂项目还需继续学习Spring【不过Springboot完全够用了,除非是接口几千个的大项目,可能要考虑到后续并发量之类的问题,Springboot作为一个比较单体的东西,可能确实是不太应付得来】)
创建Springboot应用
(IDEA2020.3)
创建
-
Group处一般输入公司域名
-
Artifact处输入项目名称
-
SDK:1.8
-
Java version:8
注意如果选不了8,把Server URL改成https://start.aliyun.com/
-
Web→Spring Web
-
选择存放位置
-
右下角会显示下载依赖的进度条,如果持续太久了可能是下面的配置路径出了问题,需要修改过阿里云镜像,要不然就很慢, 在项目里修改的路径是:Settings→Build,Execution,Deployment→Build Tools→Maven。
注意但是这样设置有可能在创新项目的时候又改成C盘下的.m2文件里的配置路径,可以在创建项目的页面直接修改,这样一劳永逸。
基本结构(基于maven)
- 代码位于src下的java目录
- resources下放置一些资源(系统会自动放一些文件夹和配置目录)
- static放置网站的静态资源
- templates放置网站的html之类的模板
- application.properties为重要的配置文件(但springboot无需配置)
- test为java的测试
- pom.xml
- parent标签,可以认为是一个副级的项目,我们现在就是依赖于这个项目,不需要多做配置
- dependencies,一些依赖包
- main→java→com.example.xxx是主包,后续我们要写什么都需要放进主包
- 启动程序为主包下的xxxApplication类
操作
-
在主包下创建controller包,创建xxxController类
-
在类中做**@RestController**标记以让此类变为控制器,可以接收客户端的请求
-
具体如何接收需要在类中加入public方法,返回类型为String:
pubilic String xxx(){ return "hello world";}
期望为浏览器访问后端时,能够看到此字符串 -
加入一个注解:@GetMapping("/xxx") 效果为浏览器可以发送http里的get请求来访问xxx()方法,具体访问方法时需要明确的链接地址:/xxx
-
浏览器如何访问?浏览器会固定使用"http"的协议,后加一个域名,再往后是具体路径/path:
http://localhost:8080/path
,上面的/xxx就是此处的路径,这样就可以访问刚刚写的方法(默认localhost:80,但80是可以省略的,一般访问本地主机就写成localhost,但是Tomcat访问的是8080端口,所以需要写成localhost:8080)。
全部代码如下
创建Controller包,包下创建HelloController类
|
|
启动
- 找到xxxApplication启动类,启动程序
- 会在启动台里看见Springboot的标志
- 在浏览器输入localhost:8080/xxx
- 修改一定要重启项目(可以通过热部署解决)
开发环境热部署
- 在pom.xml中加入依赖
|
|
- 点击右上角的按钮,下载依赖
- 在application.properties配置devtools
|
|
- 打开Settings页面,在左边的菜单栏依次找到Build,Execution,Deployment一Compile,勾选
- Build project automatically
- 按Ctrl+Shift+Alt+/快捷键调出Maintenance页面,单击Registry,勾选
- compiler,automake.allow,when.app.running
- (IDEA2021版本的设置在Settings→Advanced Settings→Comiler里面)