Springboot入门分析

Spring Boot 2.0.4.RELEASE需要Java 8或9以及 Spring Framework 5.0.8.RELEASE或更高版本。Maven 3.2+,嵌入式servlet容器Tomcat8.5 Servlet版本3.1以上。

一般以maven方式构建工程,需继承spring-boot-starter-parent父工程

查找为什么要以这种方式构建工程,先看一下spring-boot-starter-parent工程

springboot为什么没有出现父子容器的问题 springboot父工程_pom

该工程为一个POM工程并依赖于spring-boot-dependencies工程,继续查看

springboot为什么没有出现父子容器的问题 springboot父工程_spring_02

springboot为什么没有出现父子容器的问题 springboot父工程_解决方案_03

springboot为什么没有出现父子容器的问题 springboot父工程_springboot_04

从上图可以看出该工程也是一个POM工程,该工程中定义了所有平时常用的jar包的版本和依赖的管理,以及一些常用插件的管理。到此我们可以看出springboot项目继承spring-boot-starter-parent项目是springboot为我们提供的一种便捷的开发方式,在springboot的官网也有该段描述

springboot为什么没有出现父子容器的问题 springboot父工程_解决方案_05

官方给出的一种解决方案

springboot为什么没有出现父子容器的问题 springboot父工程_官网_06

在此我们举一个例子来验证一下spring官网提供的这种解决方案,我们需要创建一个公司项目的总的依赖管理POM父工程

先创建一个普通的maven项目,跳过骨架自定义创建一个最简单的项目

springboot为什么没有出现父子容器的问题 springboot父工程_解决方案_07

更改打包方式为POM并删除根目录下的src文件夹此时项目结构只有父工程和pom文件,添加官网提供的解决方案以及一些公司用到的jar包管理

springboot为什么没有出现父子容器的问题 springboot父工程_spring_08

至此,一个公司的项目父POM构建完成,接下来我们在项目中创建我们的子项目模块来引用这个父POM实验一下结果,此处我们创建一个简单的web工程示例

此处为了简便,我们利用idea提供的骨架来创建一个简单的web工程

springboot为什么没有出现父子容器的问题 springboot父工程_解决方案_09

建好之后发现没有maven项目的基本主目录和插件也是用的1.7版本,由于公司统一用的1.8的jdk所以此处需更改编译版本,并添加src源文件目录和资源文件目录以及测试的目录

springboot为什么没有出现父子容器的问题 springboot父工程_解决方案_10

根据springboot的开发流程,springboot官网解释

springboot为什么没有出现父子容器的问题 springboot父工程_解决方案_11

在pom文件引入对web项目的starter基本依赖

springboot为什么没有出现父子容器的问题 springboot父工程_官网_12

编写基础代码,并测试,一个启动类,一个controller

基础启动类为CompanyWebApplication此类不能放在java目录下需要放在项目根包中,springboot官方解释为

springboot为什么没有出现父子容器的问题 springboot父工程_pom_13

可能会导致这几个注解出现问题,所以建议不要放在default包下

springboot为什么没有出现父子容器的问题 springboot父工程_官网_14

启动项目访问得到结果,至此我们应该对springboot有了初步的了解