SpringBoot实践(一)——项目搭建
前言
SpringBoot作为一个发展速度很快的框架,它解决了很多框架搭建工程中造成的代码冗余问题。我个人认为它就是一个技术平台后者说是工具,它提供的是一个将各种主流框架和技术整合在一起的一个平台,该平台设定了一套规则,简化了整合过程中的相关配置。
SpringBoot系列会从最基础的SpringMVC开始逐渐搭建好之前的SSM架构,然后以此为基础将整合SpringCloud,然后将Redis或MangoDB等NOSQL数据库整合在一起。如果有时间的话,可能会提供一个企业级开发架构的设计思路
,事先声明,源码是不可能公布的,提供思想已经很过分了,大家不要得寸进尺哦。
文章目录
概述
SpringBoot中为我们提供了很多注解,这些注解都是由我们的元注解来组成的(不知道什么是元注解的请随便去找一个博客了解一下)。也就是说,我们在SpringBoot中使用的注解多数都是这种组合注解,这也是我们使用SpringBoot十分方便的原因,整个SpringBoot中充斥中各种简化的思想。
总体感觉,在Java编程的所有框架中,迄今为止将抽象思想贯彻的最为彻底的就是SpringBoot了,建议大家去看SpringBoot的官方开发文档,我们会从中找到很多意想不到的注解或者配置方式简化你的开发。
SpringBoot搭建
SpringBoott专栏中对该架构的搭建有过说明,现在重新说明一下,本篇笔记会将技术和理论放在一起说明。同时为了避免混淆,我会将理论说明尽量放在注释中,下面先描述如何大家SpringBoot架构。
准备工作
- 能上网的电脑(大学生最好不要用校园网,如果没有其他网络也没关系,后面有解决办法);
- IDEA(破解版也好,花钱买的也好,总之是可以进行Web开发的版本);
- Java8及以上版本;
- Maven3.2以上版本;
- tomcat9以上版本(这个可有可无,不主要)。
以上预先准备的工作中,除了电脑和IDEA我无法提供,剩下的都可以从我上传到CSDN的链接中免费下载得到。
IDEA搭建SpringBoot
IDEA搭建SpringBoot有两种办法,一个是通过Maven工具来引入SpringBoot父项目依赖来搭建SpringBoot基础框架,另一种是通过Spring快速搭建工具来创建,下面先放上第一种(通过Maven工具搭建SpringBoot架构)。
Maven工具搭建SpringBoot
- 创建Maven项目
【注】:注意这张图片(第三张)中的Parent一定要设置为None,为了和其他项目不耦合;下面的Maven三坐标根据自己的需要设定,这个就是你的项目以后的坐标。
【注】:这里设置我们使用的Maven版本,根据自己的实际情况来。
- 引入依赖
<!--引入SpringBoot父项目的依赖-->
<!--引入父项目的依赖并不会加载各种Jar包依赖-->
<!--SpringBoot父项目主要完成的工作是维护版本约束-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.3</version>
</parent>
<dependencies>
</dependencies>
- 书写SpringBoot项目入口类(启动类):
/*
该注解只能用在入口类上,一个SpringBoot项目中只能出现
该入口类是启动整个SpringBoot项目主类
*/
/*
该注解为组合注解:就是由多个注解组合而成一个注释
组合注解:多个注解组合成一个注解
元注解:用来修饰注解的注解
*/
/*
@SpringBootApplication = SpringBootConfiguration + EnableAutoCOnfiguration,这两个注解的具体含义如下:
@SpringBootConfiguration:该注解就是用来配置Spring 和 SpringMVC(初始化servle等)相关环境
@EnableAutoConfiguration:开启自动配置、自动与项目中引入的第三方技术配置相关环境。
当我们在pom.xml中引入了第三方技术的依赖,我们将可以自动将该技术与SpringBoot平台的约定俗成的相关配置。
@ComponentScan:组件扫描、根据注解发挥注解作用,默认扫描当钱包及其子包
*/
@SpringBootApplication
public class Project22114SpringbootApplication {
public static void main(String[] args) {
SpringApplication.run(Project22114SpringbootApplication.class,args);
}
}
【注】:该入口类可以扫描当前包及其子包,所以我们尽量放在所有需要被扫描的类的上级包,即按照规范来说是第二级包:com.xxx
这个时候我们就可以运行入口类,然后在控制台看到项目启动的相关日志。
Spring快速搭建工具搭建SpringBoot
- 新建项目
【注】:如果使用的网络状况不好或者是校园网的话,我们可以使用下面的国内阿里云镜像来搭建SpringBoot
- 配置项目的相关参数
【注】:最上面是配置该项目在maven工具中存放的三坐标;第二个红框是当前语言版本;第三个红框是我们的入口类被生成的路径,这个一定要记住更改。
- 引入搭建SpringBoot需要的框架
【注】:这里是引入SpringBoot环境所需要的框架(Jar包),现在仅搭建最基础的SpringBoot架构,暂时不选。
- 配置项目的名字等信息
搭建小结
这一部分搭建最基础的SpringBoot项目,这其中没有任何其他框架参与其中。查看项目是否搭建成功可以运行启动类(入口类),如果控制台输出信息没有报错则证明搭建成功。
SpringBoot配置SpringMVC
曾几何时我们配置SpringMVC的时候需要书写大量的配置文件,现在使用SpringBoot后则不会这些繁杂的配置文件让你书写,大量繁杂的配置都被SpringBoot内部自动配置好,我们只需要书写一些根据业务需求经常发生变动的配置,具体配置方法如下:
- 引入SpringMVC依赖:
<!--引入web依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
是的你没看错,现在我们只需要在SpringBoot的pom.xml文件中引入这一个依赖就可以完成SpringMVC最基础的配置。
接下来我们可以简单的写一个Controller来测试一下:
@RestController
public class TestController {
@RequestMapping("/test")
public String test(){
System.out.println("这是一个SpringBoot接口");
return "hello springbott";
}
}
启动项目,然后就可以在浏览器地址栏输入http://localhost:8080/test
,SpringBoot项目中的访问默认是没有项目名的,如果我们需要出示一个写入一个项目名,则可以通过配置文件来完成。
- 书写配置文件
SpringBoot的配置文件也不是我们曾经书写繁杂的xml文件了,取而代之的是两个规范:.properties
,.yml
文件。这两种文件类型在使用上没什么区别,不过.properties
文件大家有过使用的经历,所以我在这里使用yml
文件。
在resources
下新建文件,名为:application.yml
,然后在文件中书写如下配置:
server:
port:8081
servlet:
context-path:/springboot
# 首先,两种配置文件中,注释都是用 '#' 开头;其次,我们可以通过手动更改SpringBoot项目默认的端口号;最后,书写项目名的时候需要在项目名前加入 '/',否则失效
配置文件的小细节
我们工作的时候经常会遇到生产环境和测试环境在某些方面不太一致的情况(IP、密码等),这个时候我们没办法频繁更改配置文件,所以我们可以通过规定调用哪个配置文件来启动项目,具体如下:
- 准备三个文件:application.yml、application-dev.yml、application-prod.yml
- 在
application.yml
文件中书写如下配置
spring:
profiles:
active: dev # 让dev环境生效
#active:prod # 让prod环境生效
- 然后我们在其他两个配置文件中书写不同的port、context-path,这样就可以测试除我们使用的究竟是哪个配置文件来启动了。
总结
今天的笔记没记录特别多,主要是因为想说一下SpringBoot中一些逻辑问题。
- SpringBoot启动时,看似启动的是主类,好像和我们Web项目一起打天下的tomcat没关系。其实不然,我们的SpringBoot中内嵌了一个tomcat9版本,在启动主类的时候我们回将SpringBoot项目放在内嵌的tomcat中运行;
- SpringBoot可以打包,这个不稀奇,关键是它可以将Web项目打包为Jar包,这个以后会有说明;
- 本篇笔记中引入SpringMVC的时候只引入了一个Jar包,这是SpringBoot为我们提供的方便,大多数框架在SpringBoot中整合的时候仅需要一个Jar,其余的框架也不会很多,总之比曾经搭建SSM架构需要几十个Jar包要简单很多;
- 配置文件也简化了很多,我们同样可以自行配置视图解析器,数据库参数等,而且要比曾经的XML文件方便很多;
- properties文件和yml文件中在使用上的区别为:前者显示上为单纯的键值对,而后者则体现出一种树型结构的感觉,其实二者并没有什么不同,单纯的语法有些差别而已;
- SpringBoot版本尽量使用高一点的,因为这种专门做集成的技术学得新一些总有些好处,而且,SpringBoot在2020年一年时间内就推出了多个稳定版本(好家伙的,生产队的驴看了都得骂内卷),所以大家可以放心大胆的学。现在最新版本为2.5.8,我建议各位最低从2.4.x开始,主要是为了以后学习SpringCloud兼容,这俩玩意有严格的版本对应关系。
本篇笔记到此为止,下一篇笔记继续细化配置。