Spring Boot系列(1)——介绍与第一个程序
〇、Spring Boot是什么?
是一个基于Spring的轻量级框架,让你的Spring 应用程序尽可能快的跑起来,并且尽可能减少你的配置文件;
并且通过内嵌Tomcat、Jetty等web服务器,无需部署war文件,直接以jar包方式运行Spring应用程序。
一、第一个Spring Boot程序(通过Maven建立)
ide:IntelliJ IDEA 2018.3.6
jdk:Java 8
1.新建一个maven项目
按个人偏好填写好groupId和artificialId;点击新建后会有一个pom.xml文件
将以下依赖配置复制到你的pom.xml文件中去,并等待依赖jar下载完成(第一次时间较久):
1 <!-- 指定Spring Boot的版本 2.0.4.RELEASE --> 2 <parent> 3 <groupId>org.springframework.boot</groupId> 4 <artifactId>spring-boot-starter-parent</artifactId> 5 <version>2.0.4.RELEASE</version> 6 </parent> 7 8 <dependencies> 9 <!-- 导入Spirng Boot web 所需的jar包 --> 10 <dependency> 11 <groupId>org.springframework.boot</groupId> 12 <artifactId>spring-boot-starter-web</artifactId> 13 </dependency> 14 </dependencies>
相关依赖jar包下载完成如下图:
2.编写启动整个spring boot应用的启动类
新建一个类,类名根据个人喜好;在类上增加@SpringBootApplication 注解,以表示这是一个spring boot 应用程序
在该类下增加main方法,具体如下图:
注意SpringApplication.run(参数1, 参数2)第一个参数是当前启动类.class
3.编写controller
同Spring MVC类似,不过多介绍,如下图:
4.运行查看
运行启动类中的main方法(第一个红框);从控制台的日志输出可以看到spring boot为我们内置了Tomcat服务器,并且端口为8080(第二个红框)
此时,就可以在浏览器输入url访问了,下图便是访问成功:
5.打包部署
前面说过,spring boot 可以直接以jar包运行,所以这里便将项目打包成jar文件
首先在项目的pom.xml文件加入打包插件配置:
<!-- 打包成可执行jar包--> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>2.0.4.RELEASE</version> </plugin> </plugins> </build> <!--阿里远程仓库,防止默认远程仓库无法下载打包插件--> <repositories> <repository> <id>alimaven</id> <name>Maven Aliyun Mirror</name> <url>http://maven.aliyun.com/nexus/content/repositories/central/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories>
使用maven自动打包(在idea中找到Maven->当前项目->Lifecycle->双击package),从控制台信息可以看到打包完成,并且看到jar文件存放的目录:
启动!
启动完成后,可以在浏览器输入url访问了。
二、第一个Spring Boot程序的一些细节
1.为什么不用配置?(与Spring MVC相比)
在以往创建Spring MVC程序过程中,我们一般流程都是:(1)将Tomcat集成到IDE、(2)新建WEB项目、(2)引jar包、(3)在web.xml里配置分发器[DispatcherServlet]、url拦截模式[servlet-mapping]、视图解析器[UrlBasedViewResolver].....
而上面所说的Spring Boot好像没有了这些步骤,就初学C或者Java一样,新建一个程序就可以立刻编写代码并执行。
->"分发器[DispatcherServlet]、url拦截模式[servlet-mapping]、视图解析器[UrlBasedViewResolver]"的配置哪去了?
Spring Boot已经帮我们配置好了,通过启动类上的@SpringBootApplication注解为我们引入了这些默认配置。
->"Tomcat"哪去了?
Spring Boot项目内嵌了Tomcat、Jetty等Web容器,并且帮我们配置好了一些默认参数(比如端口为8080)。
->"Jar包"从哪里引入的?
在我们上面的Spring Boot程序中,有一个pom.xml文件,有以下配置:
1 <dependencies> 2 <dependency> 3 <groupId>org.springframework.boot</groupId> 4 <artifactId>spring-boot-starter-web</artifactId> 5 </dependency> 6 </dependencies>
就是这个Spring-boot-starter-xxx帮我们引入了构建一个spring Boot项目所需的jar包。而所谓starter,其实是Spring开发团队预先分拣、划分好的场景启动器(某类项目jar包配置的集合)。以下截图来自Spring官网的相关文档:
->怎么自动配置的?
在spring-boot-autoconfigure.jar中,为常见框架写了默认配置。
当我们选择了starter之后,相应的默认配置也会被引入。而后Spring Boot容器通过AutoConfigurationImportSelector.class将spring-boot-autoconfigure.jar中各个框架默认配置获取。
其中spring-boot-autoconfigure.jar下默认配置的封装形式:[框架名]AutoConfiguration组件类; [框架名]Properties配置类
1[服务名]AutoConfiguration 帮我们给容器自动添加组件
2[服务名]Properties 封装配置文件中的内容
三、用IntelliJ IDEA新建Spring Boot项目
1.点击新建项目(Create New Project),而后选择Spring Initializr、JDK,如下图:
2.点击下一步(next)后,按需填写groupID和artifactID以及其它信息(下图显示的是idea默认的项目信息):
3.下一步是选择依赖(选择starter),这里构建一个简单的Spring Boot Web项目,只需如图所示选择:
4.点击下一步后,填写项目的名称、存放在磁盘的路径、模块名称及路径。
5.点击finish后,会发现通过idea创建的Spring Boot项目默认为我们新建了启动类、并引入刚刚我们所选的web相关依赖(Starter)以及一个全局配置文件: