通过Spring官网创建一个Maven类型的Springboot程序
https://start.spring.io/
出现spring initializer界面,在此界面定制自己想要的springboot程序
(1) 选择项目配置
① Maven和Gradle都是项目的自动构建工具。对于一个项目,编译源代码只是整个过程的一个方面,更重要的是需要将软件发布到生产环境中来产生商业价值。所以需要运行测试,构建分布,代码质量分析甚至为不同目标环境提供不同的版本,然后部署,这整个过程,使用自动构建工具会省事很多。
Gradle比Maven配置的时候简洁很多,但是现在大部分企业都使用Maven, 因此使用Maven来构建项目。
② 对于Project Metadata, Group为开发团队的组名,一般以com.xxx开头。Artifact和Name填项目名。
Packaging为打包方式,我们选择将项目打包成Jar包。
springboot的项目,一般常用Jar与war两种打包方式。
Jar(Java Archive, Java归档文件),适合在开发阶段使用,因为开发阶段经常需要修改Web程序的内容,打包成Jar比较简单。Jar包就是java的类进行编译生成的class文件打包的压缩包,包里面就是一些class文件,当我们自己使用Maven写一些java程序并打包成jar包,这个jar包同时可以在其它的工程下使用,但使用时,若此项目依赖了其它jar包,也需将其依赖的jar包导入到其它工程中。
War包是一个web应用程序的压缩包,包含Web配置,前端的页面文件,以及依赖的jar包等等,适合在项目需要部署的时候打包成War包。
③ 截止到2021年10月,Java已经更新到17,Java11是一个比较经典并且企业中常用的版本,因此使用Java11开发。
(2)添加依赖
点击图片上所示的ADD DEPENDENCIES, 输入依赖Web(创建Web项目必备),点击搜索结果Spring Reactive Web,就添加好了依赖。推荐也加上Actuator,Actuator可以帮助我们监控和管理Spring Boot应用,比如健康检查,审计,统计和HTTP追踪等。
(3)添加完依赖之后,点击上图红框所示的GENERATE, 这样就可以得到一个压缩的Spring boot Web初始化模板啦。
(1)将下载的压缩包解压复制到目标文件夹。使用Intellij IDEA打开,Maven会自动下载依赖,等待Maven下载完依赖。
(2)打开src目录的最底层,包含一个Application文件,该文件为web项目的启动文件,打开启动文件,点击绿色三角即可启动项目。
打开项目结构,src目录下包含我们的项目代码,其中main目录下是我们项目使用到的代码与资源,test里为项目的各种测试代码。对于main目录,里面包含java目录和resource目录,java目录里为我们为实现项目功能写的java代码,resource为项目需要的一些资源,例如数据文件,前端界面文件等等。与src目录并行的文件中,有个pom.xml文件,此文件为Maven的配置文件,管理整个项目的依赖。
(1) pom.xml
①Spring Boot将spring-boot-starter-parent作为整个Maven项目的parent, 在spring-boot-starter-parent中定义了大量的依赖,Spring官方对这些依赖都进行了严格的测试,确保里面的依赖不会有冲突。因此在浏览pom.xml文件的dependencies时,我们会发现里面引用的依赖并没有指定版本号,我们只需要告诉maven我们需要什么,版本号会在spring-boot-starter-parent的dependency management里被自动管理。
// pom.xml文件节选
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.5</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
②在pom.xml中还定义了spring-boot-maven-plugin插件,这个plugin的用处是在执行打包命令的时候,替我们生成一个可执行的Jar包。
// pom.xml文件节选
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
③ 若因为各种原因,项目必须使用自定义的parent依赖,不能使用springboot自带的spring-boot-starter-parent,可以修改一下pom文件来达到目的。
使用自定义的parent,并在pom.xml里添加dependencyManagement,将原本的spring-boot-starter-parent以下面代码的方式加入到dependencyManagement中,通过这样做,同样可以实现spring-boot-starter-parent所拥有的依赖管理功能。与此同时,按照下面代码修改spring-boot-maven-plugin插件,这样就可以与使用spring自带的parent无差别。
// 添加dependencyManagement
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.5</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
// 修改spring-boot-maven-plugin插件
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.5</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
(2) HelloSpringApplication.java
HelloSpringApplication.java中包含一个带有@SpringBootApplication注解的main()方法,此为整个项目的程序入口。@SpringBootApplication注解实际包含@SpringBootConfiguration,@EnableAutoConfiguration, @ComponentScan这三个注解,实现了springboot的自动配置。
// HelloSpringApplication.java节选
@SpringBootApplication
public class HelloSpringApplication {
public static void main(String[] args) {
SpringApplication.run(HelloSpringApplication.class, args);
}
}