Spring Boot 依赖环境和项⽬目结构——Spring Boot(三)
使用Spring Boot 开发项目需要有两个基础环境和一个开发工具,这两个环境是指Java编译环境和构建工具环境,一个开发工具是指IDE开发工具。
Spring Boot 2.0要求Java8作为最低版本,需要在本机安装JDK1.8并进行环境变量配置,同时需要安装构建工具编译 Spring Boot项目,最后准备一个顺手的IDE开发工具即可。
构建工具是一个把源代码生成可执行应用程序的自动化工具,Java领域中主要有三大构建工具:Ant、Maven和Gradle。
Ant(AnotherNeatTool)的核心是由Java编写,采用XML作为构建脚本,这样就允许你在任何环境下运行构建。Ant是Java领域最早的构建工具,不过因为操作复杂,慢慢的已经被淘汰了。
Maven,Maven发布于2004年,目的是解决程序员使用Ant 所带来的一些问题,它的好处在于可以将项目过程规范化、自动化、高效化以及强大的可扩展性。
Gradle,Gradle 是一个基于Apache Ant和Apache Maven概念的项目自动化建构工具。它使用一种基于Groovy的特定领域语言来声明项目设置,而不是传统的XML。结合了前两者的优点,在此基础之上做了很多改进,它具有Ant的强大和灵活,又有Maven的生命周期管理且易于使用。
Spring Boot 官方支持Maven和Gradle作为项目构建工具。Gradle虽然有更好的理念,但是相比Maven来讲其行业使用率偏低,并且Spring Boot 官方默认使用Maven,因此本系列课程选择使用Maven作为Spring Boot项目构建工具。
Java领域最流行的IDE 开发工具有Eclipse和IDEA。Eclipse是Java的集成开发环境(IDE),也是Java领域最流行的IDE开发工具之一,只是Eclipse 这些年发展缓慢,慢慢的有些陈旧。IDEA(IntelliJIDEA)是用于Java 语言开发的集成环境,在业界被公认为是最好的Java开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE支持、创新的GUl设计等方面的功能可以说是超常的。因此强烈推荐大家使用IntellJ IDEA 开发Spring Boot项目。
接下来将介绍如何搭建基础环境以及IntelliJIDEA的安装。
安装JDK开发环境:
这方面的博文已经多的不行,基本上随便百度一下即可完成下载和安装。这里就不再赘述。
查看一下本机的Java环境:
使用命令"java -version"即可查看本机的Java编译环境。
Microsoft Windows [版本 10.0.18362.535]
(c) 2019 Microsoft Corporation。保留所有权利。
C:\Users\Mac>java -version
java version "1.8.0_40"
Java(TM) SE Runtime Environment (build 1.8.0_40-b25)
Java HotSpot(TM) 64-Bit Server VM (build 25.40-b25, mixed mode)
C:\Users\Mac>
安装Maven:
同上,Maven的安装也是相当简单的,自行百度即可解决。
本机的Maven环境查看:
使用命令"mvn -v"即可查看本机maven及Java环境版本信息。
C:\Users\Mac>mvn -v
Apache Maven 3.5.3 (3383c37e1f9e9b3bc3df5050c29c8aff9f295297; 2018-02-25T03:49:05+08:00)
Maven home: G:\Maven3.5.3\apache-maven-3.5.3-bin\apache-maven-3.5.3\bin\..
Java version: 1.8.0_40, vendor: Oracle Corporation
Java home: D:\software\java1.8.40\jdk1.8.0_40\jre
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 8.1", version: "6.3", arch: "amd64", family: "windows"
C:\Users\Mac>
只是需要注意的是,因为,maven是别人家的东西,假如我们需要使用的话要做一下简单的更改和配置。可以使用国内的仓库镜像。以下简单介绍以下Maven的相关配置。
settings.xml配置:
Maven 解压后目录下会有一个settings.xml文件,位置:${M2_HOME}/conf/settings.xm1,用来配置Maven的仓库和本地Jar 包存储地址。Maven 仓库地址代表从哪里去下载项目中的依赖包 Jar包;Maven会将所有的Jar包统一存储到一个地址下,方便各个项目复用。localRepository设置本地存放Jar包地址,可以根据自己的情况改动:
<localRepository>D:\Common Files\maven\repository</localRepository>
mirrors 为仓库列表配置的下载镜像列表:
<mirrors>
<mirror>
<id>repo2</id>
<mirrorOf>central</mirrorOf>
<name>spring2.0 for this Mirror.</name>
<url>https://repo.spring.io/libs-milestone</url>
</mirror>
...
<mirrors>
构建项目
我们有两种方式来构建 Spring Boot 项目基础框架,
第一种是使用Spring 官方提供的构建页面;
第二种是使用IntelliJ IDEA中的Spring 插件来创建。
使用Spring 官方提供页面构建
访问http://start.spring.io/网址。
选择构建工具Maven Project,编程语言选择Java、Spring Boot版本2.0.5以及一些工程基本信息,具体可参考下图。
将构建的项目下载下来的项目目录结构如下:
使⽤用 IDEA 构建
- 选择File I New I Project..命令,弹出新建项目的对话框。
- 选择Spring Initializr,Next也会出现上述类似的配置界面,IDEA帮我们做了集成。
- 填写相关内容后,单击Next 按钮,选择依赖的包再单击Next 按钮,最后确定信息无误单击Finish按钮。
- 对上面的配置做如下解释。
- 第一个选择框选择创建以Maven构建项目,还是以Gradle构建项目,这是两种不同的构建方式,其中Gradle 配置内容更简洁一些,并且包含了maven的使用,但我们日常使用maven 居多。
- 第二个选择框选择编程语言,现在支持Java、Kotlin 和Groovy。
- 第三个选择框选择 Spring Boot 版本,可以看出Spring Boot2.0的最新版本是2.0.5。
下面就是项目的配置信息了。
- Group,一般填写公司域名,比如百度公司就会填:com.baidu,演示使用com.neo。
- Artifact,可以理解为项目的名称了,可以根据实际情况来填,本次演示填 hello。
-
Dependencies,在这块添加我们项目所依赖的 Spring Boot 组件,可以多选,本次选择Web、Devtools两个模块。
项⽬目结构介绍
如上图所示,Spring Boot的基础结构共三个文件,具体如下:
src/main/java:程序开发以及主程序入口;
src/main/resources:配置文件;
src/test/java:测试程序。
另外,Spring Boot建议的目录结构如下。
com.example.myproject目录下:
com.example.myproject 目录下:
Application.java,建议放到根目录下面,是项目的启动类,Spring Boot 项目只能有一个main()方法;
comm目录建议放置公共的类,如全局的配置文件、工具类等;
model目录主要用于实体(Entity)与数据访问层(Repository);
repository 层主要是数据库访问层代码;
service 层主要是业务类代码;
web层负责页面访问控制。
resources目录下:
static目录存放web访问的静态资源,如js、cSs、图片等;
templates 目录存放页面模板;
application.properties存放项目的配置信息。
test目录存放单元测试的代码;pom.xml用于配置项目依赖包,以及其他配置。采用默认配置可以省去很多设置,也可以根据公司的规范进行修改,至此一个Java项目搭建好了!
Pom 包介绍
pom.xml 文件主要描述了项目包的依赖和项目构建时的配置,在默认的pom.xml包中分为五大块。
第一部分为项目的描述信息:
<groupId>com.neo</groupId>
<artifactId>hello</artifactId>
<version>2.0.5.RELEASE</version>
<packaging>jar</packaging>
<name>hello</name>
<description>Demo project for Spring Boot</description>
groupld,项目的包路径;
artifactld,项目名称;
version,项目版本号;
packaging,一般有两个值:jar、war,表示使用Maven 打包时构建成Jar包还是War包;
name,项目名称;
description,项目描述。
第二部分为项目的依赖配置信息:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
parent,标签内配置 Spring Boot 父级版本spring-boot-starter-parent,Maven支持项目的父子结构,引入父级后会默认继承父级的配置;
dependencies,标签内配置项目所需要的依赖包,Spring Boot体系内的依赖组件不需要填写具体版本号,spring-boot-starter-parent维护了体系内所有依赖包的版本信息。
第三部分为构建时需要的公共变量:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
上面配置了项目构建时所使⽤用的编码,输出所使用的编码,最后指定了项目使用的 JDK 版本。
第四部分为构建配置:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
使用Maven 构建Spring Boot 项目必须依赖于spring-boot-maven-plugin 组件,spring-boot-maven-plugin能够以Maven的方式为应用提供Spring Boot的支持,即为Spring Boot 应用提供了执行Maven操作的可能。spring-boot-maven-plugin 能够将Spring Boot 应用打包为可执行的jar或war文件,然后以简单的方式运行Spring Boot应用。
以上即为pom.xml文件基础内容,几乎所有的Spring Boot项目都会用到以上配置信息。
总结
这一课我们介绍了Spring Boot 所依赖的基础环境,如何去搭建JDK、Maven环境,安装开发工具IDEA;对Spring Boot项目结构进行了解读,介绍了pom.xml文件内容的含义。通过本课的学习,我们发现构建Spring Boot 项目更简单方便,相比传统项目,Spring Boot 项目配置更加灵活。