目录
三.Spring、Spring Boot和Spring Cloud的关系
六.使用Spring Boot Initializer快速创建Spring Boot项目
Spring Boot简单入门
一.Spring Boot简介
1.Spring Boot是由 Pivotal团队在2013年开始研发、2014年4月发布第一个版本的全新开源的轻量级框架。它基于Spring4.0设计,初衷是简化使用Spring开发应用程序的过程,避免烦琐的配置工作,开发人员使用Spring Boot可以只专注于实现应用程序的功能和业务逻辑。
2.Spring Boot是一个基于Spring框架的快速开发框架,它使用了约定大于配置的方式,可以帮助开发人员快速搭建基于Spring的Web应用程序。Spring Boot的特点在于自动化配置、嵌入式Web容器、依赖管理等方面,可以帮助开发人员轻松地构建高质量的Web应用程序。
3. Spring Boot的主要目标是简化Spring应用程序的配置和部署过程,同时提供更加灵活的开发方式。它使用了约定大于配置的方式,减少了开发人员需要编写的配置文件和代码量,并提供了自动化配置功能,可以根据应用程序的需求自动配置Spring框架中的各个组件。基于这些特点,Spring Boot可以帮助开发人员快速搭建基于Spring的Web应用程序,同时提高开发效率和代码质量。
二.Spring Boot特点
(1)约定优于配置
Sm t使用“约定优于配置”的理念,针对企业级应用程序的开发,提供了很多已经集成好的方案,“开箱即用”的原则使得开发人员能做到零配置或极简配置。
(2)创建独立运行的Spring应用程序
使用 SDing Bool 可以创建独立运行的 Spring 应用程序,并且基于Spring 应用程RMon或Gadle插件,可以创建可执行的JAR包和WAR包,使用java-jar命令或者在项目的主程序中执行main方法可以运行Spring Boot应用程序。
(3)内嵌 Servlet容器
Sping Boot可以选择内嵌Tomcat或Jety等 Servlet容器,无须以WAR包形式部署应用程序。
(4)提供starter 简化 Maven 配置
Spring Boot提供了一系列自动配置的starter项目对象模型(Project Object Model,POM)以简化 Maven配置,高度封装,实现开箱即用。
(5)自动配置Spring
Spring Boot可以尽可能地根据在类路径中的JAR包,为JAR包里的类自动配置Spring中的Bean,极大地简化项目的配置。而对于少部分没有提供支持的开发场景,Spring Boot可以自定义自动配置功能。
(6)准生产的应用监控
Spring Boot提供了一个准生产环境下的监控和管理功能模块,可以使用HTTP、SSH、Telnet等协议来进行操作,对运行的项目进行管理、跟踪和监控。
(7)无代码生成和XML配置
Spring Boot不是借助代码生成来实现的,而是通过条件注解来实现的,这是Spring+提供的新特性,Spring Boot不需要任何XML配置即可实现Spring的所有配置。
三.Spring、Spring Boot和Spring Cloud的关系
(1)Spring
Spring是于2003年兴起的一个开源的轻量级的Java开发框架,由罗德·约翰逊(RodJohnson)开发。它是为了降低企业应用程序开发的复杂度而创建的,主要优势之一就是其分层架构,分层架构允许使用者选择使用某个组件,同时为Java EE应用程序开发提供集成的框架。它提供了一些依赖注入和开箱即用的模块,如Spring MVC、Spring 素养拓展JDBC、Spring Security、Spring AOP、Spring IoC、Spring ORM和Spring Test。
这些模块为程序员节省了大量的应用程序开发时间,提高了开发应用程序
的效率。
(2)Spring Boot
Spring Boot是Spring的扩展和自动化配置,它省去了在Spring中需要进 永无止境行的XML文件配置过程,使得开发过程变得更快、更高效、更自动化。
(3)Spring Cloud
Spring Cloud是一套分布式服务治理框架,主要用于开发微服务。它本身不提供具体功能性的操作,只专注于服务之间的通信、熔断和监控等。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发过程,如服务发现注册、配置中心、消息总线、负载均衡、熔断器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。微服务是可以独立部署、水平扩展、独立访问的服务单元。Spring Cloud是这些微服务的“首席技术官”(Chief Technology Offcer, CTO),它可以提供各种方
案来维护整个生态。
(4)三者的关系
综上所述,Spring Cloud通过Spring Boot来开发微服务,而Spring Boot 依赖Spring,它是Spring的自动化配置。
用一组不太合理的包含关系来表达它们之间的关系
Spring > Spring Boot > Spring Cloud
四.开发工具
1.Maven
(1)下载及Maven
a.进入Maven官网:Maven – Welcome to Apache Mavenhttps://maven.apache.org/
b.点击页面DOWNDLOAD
c.选择版本号下载
d.下载完不用安装,放到指定目录
(2)配置Maven
a.点开电脑主页-系统-系统信息
b.进入高级系统设置
c.进入环境变量
d.新建系统变量,变量名为MAVEN_HOME,变量值为你刚刚MAEN所放目录下![](https://i-blog.csdnimg.cn/blog_migrate/96c34283f7dd545d06257fdb2dc66789.png)
e.编辑环境变量Path,新建并添加变量值:%MAVEN_HOME%\bin![](https://i-blog.csdnimg.cn/blog_migrate/28d721a30c1eaeadec58710bff3ed406.png)
(3)Maven中的pom.xml文件
Maven是基于POM的理念来管理项目的,因此Maven的项目都有一个用来管理项目
的依赖及项目的编译等功能的pom.xml配置文件。pom.xml文件中主要关注以下标签。
1 .标签。
此标签包含项目依赖需要使用的多个<dependency</dependency>标签。
2 <dependency></dependency>标签。
<dependency></dependency>标签主要包括3个子标签,也称为3个坐标。
<groupld></groupId>:组织的唯一标识。
<artifactId></artifactld>:项目的唯一标识。
<version></version>:依赖或项目的版本号。
③<properties></properties>标签。
若要使用自定义的变量,则可以在<properties></properties>标签中对变量进行定义,以便在<dependency></dependency>标签中引用该变量,达到统一版本号的目的。
例如,要定义Java的版本,可以通过如下代码实现。
<properties>
<java.version>1.8</java.version>
<spring.version>5.3.6.RELEASE</spring.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>$(spring.version)</version>
</dependency>
</dependencies>
(4)配置Maven国内仓库
Maven中心仓库在国外的服务器中,因此国内用户使用Maven仓库一般会面临速度极慢的情况。为此,部分国内公司提供了Maven中心仓库的镜像,可以通过修改Maven配置文件中的<mirror></mirror>标签来设置镜像仓库。
进入Maven安装目录下的conf目录,打开settings.xml文件,找到<mirror></mirror>标签,以设置阿里云镜像仓库为例,添加如下代码。
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/gzoups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
(5)Maven的作用
1.统一项目结构和依赖管理。Maven提供了一套规范化的项目目录结构和配置文件,从而让Java项目的结构更加清晰和统一。通过使用Maven,开发者可以很容易地将Java项目划分为不同的模块,定义项目所需的依赖关系,以及配置项目的构建和测试等过程。
2.自动化项目构建和管理。Maven提供了一套自动化的项目构建和管理工具,通过定义项目对象模型(POM)来管理项目的构建过程和依赖关系,从而实现自动化构建和管理。使用Maven可以自动下载和安装所需的插件和依赖库,自动执行项目构建和测试,并生成相应的文档和报告。
3.解决导入java类依赖的jar,编译java项目。早期手动导入jar,使用Ant之类的编译java项目,以pom.xml文件中dependency属性管理依赖的jar包,而jar包包含class文件和一些必要的资源文件。
4.管理jar包,防止jar之间依赖起冲突。小组之间建立个私服务,大家都用通用的maven配置文件,不用自己手动去下载jar,pom文件会自动管理下载好的jar包。
5.Maven是基于项目对象模型,可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。 Maven能够很方便的帮你管理项目报告,生成站点,管理jar文件等等。
总之,Maven是一个强大的项目管理工具,能够有效地管理项目的构建、报告和文档,提供自动化的构建和管理工作流程,以及清晰的项目结构和依赖管理。
2.IDEA
(1)下载及安装IDEA
a.进入IDEA官网:Other Versions - IntelliJ IDEA (jetbrains.com)
https://www.jetbrains.com/idea/download/other.html
b.点击DOWNLOAD
c.选择Windows下载
d.下载完成后,我们会得到一个 IntelliJ IDEA 安装包,双击打开下载的安装包,选择 Next,正式开始安装
e.设置 IDEA 的安装目录,建议不要安装在系统盘(通常 C 盘是系统盘)
f.自行选择需要的功能,若无特殊需求,按图中勾选即可
g.选择开始菜单文件夹后,点击 Install 等待安装
h.等待安装进度条达到 100% 后,点击 Finish,IntelliJ IDEA 就安装完成了。可以勾选 Run IntelliJ IDEA 选项,表示关闭此窗口后运行 IDEA
(2)配置IDEA中的Maven环境
a.配置 settings,打开 meven目录conf下的 settings,搜找到“<mirrors>”
b.在mirrors标签中加以下内容
<mirrors> <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>*</mirrorOf> </mirror> </mirrors>
c打开IDEA.File—-> New Project
d.Maven安装配置及在idea中配置
f.Next —-> 选择项目路径
(3)IDEA的作用
a.编码助手:IDEA提供了代码自动补全、代码格式化、代码重构、代码导航、代码注释、代码模板等功能,能够大大提高开发效率
b.调试工具:IDEA提供了强大的调试工具,包括断点调试、变量查看、表达式评估等功能,帮助开发人员快速发现和解决问题。
c.版本控制:IDEA内置了Git、SVN、Mercurial等版本控制工具,支持代码提交、更新、合并等操作,方便开发人员进行代码管理
五.插件
1.安装插件Lombk
(1)打开IDEA,点击左上角File -> Settings... -> Plugins
(2)点击 Marketplace
, 进入插件市场, 输入关键词 lombok
, 搜索该插件
(3)点击 Install 按钮开始安装,小哈这里已经安装过了,所以显示的打钩。安装完成后,点击 Apply 按钮应用设置即可。
2.Lombok注解及对应功能
序号 | 注解 | 功能 |
1 | @Data | 自动生成getter/setter、toString、equals、hashCode方法,以及不带参数的构造方法 |
2 | @NonNull | 帮助处理 NullPointerException |
3 | @CleanUp | 自动管理资源,不用在finally中添加资源的close方法 |
4 | @Getter/@Setter | 自动生成getter/setter方法 |
5 | @ToString | 自动生成toString方法 |
6 | @EqualsAndHashcode | 从对象的字段中重写equals和hashCode方法 |
7 | @NoArgsConstructor/ @AllArgsConstructor | 自动生成无参/部分参数/全部参数的构造方法 |
8 | @Value | 用于注解 final 类 |
9 | @Builder | 产生复杂的构建器API类 |
10 | @SneakyThrows | 用于处理异常 |
11 | @Synchronized | 同步方法的转化 |
12 | @Log | 支持使用各种日志(logger)对象。只需在使用时用对应的注解进行标注,比如使用Log4j作为日志库,则在需要加入日志的位置写上注解@Log4j 即可 |
3.添加依赖
4.Lombok插件的作用
- 减少模板代码:使用Lombok,你可以通过简单的注解来自动生成这些常用的方法,无需手动编写这些重复的代码。这可以显著减少代码量,提高开发效率。
- 改善代码结构:通过使用Lombok,你可以将类的定义和相关的方法分离,使代码更加模块化。例如,你可以在一个类中只定义字段和Lombok注解,而将getter、setter和其他方法放在单独的类或接口中。
- 提高代码可读性:由于Lombok自动生成了getter、setter等常用方法,你可以更专注于定义类的属性和行为,而无需考虑琐碎的细节。此外,通过使用Lombok注解,代码结构更加清晰,也更易于阅读和理解。
- 简化单元测试:使用Lombok可以简化单元测试的编写。由于getter、setter等方法是自动生成的,你可以更专注于测试关键业务逻辑,而不是编写和维护模板代码。
- 提高开发效率:通过使用Lombok,你可以减少编写和审查模板代码所需的时间,从而更快地开发出更高效的代码。
- 需要注意的是,虽然Lombok可以显著简化代码编写和提高开发效率,但它也有一些限制和注意事项。例如,使用Lombok可能会增加代码的复杂性,对于不熟悉Lombok的开发者来说可能需要一些时间来适应。此外,由于Lombok自动生成了getter、setter等方法,可能会增加类的实例化开销。因此,在使用Lombok时需要注意这些潜在的问题。
六.使用Spring Boot Initializer快速创建Spring Boot项目
1.创建Spring Boot项目
(1)打开IDEA,选择【Create New Project】新建项目,在弹出的“New Porject”界面中,左侧选择【Spring Initializr】选项进行Spring Boot项目快速构建
(2)“Project SDK”用于设置创建项目使用的JDK版本,这里,使用之前初始化设置好的JDK版本即可;在“Choose lnitializr Service URL.”(选择初始化服务地址)下使用默认的初始化服务地址“https://start.spring.iohttps://link.zhihu.com/?target=https%3A//start.spring.io”进行Spring Boot项目创建(注意使用快速方式创建 Spring Boot 项目时,所在主机须在联网状态下)。接着单击【Next】按钮进入下一步
(3)将Group设置为com.itheima,Artifact 设置为chapter01,其余选项使用默认值。单击【Next】按钮进入Spring Boot 场景依赖选择界面
(4)在上图所示界面中,“Project SDK”用于设置创建项目使用的JDK版本,这里,使用之前初始化设置好的JDK版本即可;在“Choose Initializr Service URL.”(选择初始化服务地址)下使用默认的初始化服务地址“https://start.spring.io”进行Spring Boot项目创建(注意使用快速方式创建Spring Boot项目时,所在主机须在联网状态下)。接着单击【Next】
七.项目目录结构
创建好的Spring Boot项目目录结构