springboot能够帮助我们快速创建一个独立的、生产环境可用的基于spring的应用。 使用springboot开发非常简单快捷,很多互联网新人获取没有感受到这种强大的进步,就像现在人们对手机支付、手机聊天习以为常一样。 在springboot出来之前,大家开发java的web项目,需要大量繁琐的搭建配置工作,例如要先搭建一个servlet容器比如tomcat,然后要按照一定格式创建一个javaee工程,配置web.xml文件、配置spring的各种xml文件,如果要访问数据库,需要自己添加各类maven依赖、用xml配置数据库访问方式等等,服务部署也比较繁琐,要打包成war包、war exploded包等等,放到tomcat的某个文件夹下。开发人员的大量工作都投入到了这类搭建配置事情上而不是投入到编写具体的业务逻辑,导致大家开发起来效率不高。
时代在发展、科技在进步,微服务越来越受到人们的重视,然而java web开发生态这样繁琐的搭建配置开发流程显然是不利于微服务的使用的,因为微服务意味着会有很多小项目,如果每个项目都需要如此繁琐的搭建配置过程,想必java开发者对于微服务也会比较抵触,不利于java微服务的发展。
因此spring项目开始创建springboot项目,致力于让大家能够开心高效率的开发java项目。
springboot的主要目标是
- 提供快速的spring开发体验
- 提供大量默认配置,让开发者开箱即用,省去繁琐配置烦恼
- 提供很多常用功能,比如embedded server(就不用单独搭建配置tomcat了,可以一键启动项目)、security、metrics、配置、health check等等
- 没有代码生成(不是帮你生成代码,更易维护)、不需要xml配置(通过java code调整配置)
我们掌握了springboot之后,可以在数分钟内创建好一个java spring web项目,在这之前的时代是不敢想象的。 并且我们如果自己开发一些自己的小项目也会方便很多,不会因为搭建的繁琐影响自己的开发决心。
项目搭建
下面我们学习怎么快速用springboot创建一个web项目,实现一个简单的接口,并且进行打包部署测试。
springboot有很多种项目搭建的方法,可以用命令行快速创建、可以用idea快速创建、也可以把已有的项目改变成springboot。
命令行快速创建
springboot提供了命令行工具,在mac下可以用brew安装
brew tap spring-io/tap
brew install spring-boot
然后就可以使用spring命令了,例如我们要创建一个spring-boot-learn的spring项目
只需要找到一个文件夹,输入
spring init spring-boot-learn
spring就帮助我们创建好项目了,然后打开IDEA,File -> Open 选择这个文件夹就能打开创建好的springboot项目。
默认创建的项目没有带web功能,我们要增加web功能也非常简单,在pom.xml文件中增加上spring-boot-starter-web
的依赖,加在dependencies中。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
IDEA加完依赖后,我们reimport一下maven(在右边侧边栏找到maven,点那个圆圈),把相关依赖拉取过来
然后我们写一个Controller,完成一个简单的接口
在DemoApplication.java类同级加一个controller目录,里面加一个HelloController.java文件。
@RestController
public class HelloController {
@RequestMapping("/hello")
public String hello() {
return "hello";
}
}
然后我们运行DemoApplication.java中的main方法,就可以启动我们的springboot项目了。 再通过浏览器访问localhost:8080/hello,能够看到输出的hello结果。一个springboot项目就这样快速简单的创建完成了。
用idea创建springboot项目
用idea创建springboot相同同样非常简单。 File -> New - Project,选择Spring Initializer,就能创建一个springboot项目。 另外创建maven项目,再修改pom文件,也可以把maven项目变成springboot项目
pom.xml中增加,然后dependencies中增加springboot依赖,build模块中增加spring-boot-maven-plugin
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.1</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
打包部署
我们开发好项目后一般会部署到其他的机器上,springboot支持用jar包打包传输启动。
我们在项目根目录中执行mvn clean install(如果没有装maven,可以用./mvnw clean install)。 执行完成后,会在target目录下创建好打包的jar包,例如我们这里是sprnig-boot-learn-0.0.1-SNAPSHOT.jar,然后我们就可以把这个jar包传输到要部署的机器上了。 传输之后,用java -jar sprnig-boot-learn-0.0.1-SNAPSHOT.jar就可以运行了