为什么要用 Spring Boot?
Spring Boot 来自于 Spring 大家族,是 Spring 官方团队(Pivotal 团队)提供的全新框架,它的诞生解决了 Spring 框架使用较为繁琐的问题。Spring Boot 的核心思想是约定优于配置,让开发人员不需要配置任何 XML 文件,就可以像 Maven 整合 Jar 包一样,整合并使用所有框架。
Spring Boot 特性
(1)秒级构建一个项目;
(2)便捷的对外输出格式,如 REST API、WebSocket、Web 等;
(3)简洁的安全集成策略;
(4)内嵌容器运行,如 Tomcat、Jetty;
(5)强大的开发包,支持热启动;
(6)自动管理依赖;
(7)自带应用监控。
Spring Boot 2 对系统环境的要求
Java 8+
Gradle 4+ or Maven 3.2+
Tomcat 8+
Spring Boot 使用
在开始之前,我们先来创建一个Spring Boot 项目。
Spring Boot 有两种快速创建的方式:Spring 官网在线网站创建和 IntelliJ IDEA 的 Spring Initializr 创建,下面分别来看。
创建 Spring Boot 项目
1)在线网站创建
在浏览器输入 https://start.spring.io,页面打开如下图所示:
填写相应的项目信息,选择对应的 Spring Boot 和 Java 版本点击 “Generate the project”按钮下载项目压缩文件,解压后用 IDEA 打开即可。
其中 Group 和 Artifact 是 Maven 项目用来确认依赖项目的标识,比如:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.1.6.RELEASE</version>
</dependency>
Group 对应的是配置文件的 groupId,相当于项目的包名;而 Artifact 对应的是配置文件的 artifactId,相当于项目名。
2)使用 IntelliJ IDEA 创建
① 新建项目 → 选择 Spring Initialzr,如下图所示:
② 点击 Next 按钮,填写对应的项目信息(和在线网站创建的字段基本相同),如下图所示:
③ 点击 Next 按钮,选择相应的依赖信息,如下图所示:
④ 点击 Next 按钮,选择项目保存的路径,点击 Finish 创建项目完成,如下图所示:
创建一个 Web 应用
1)pom.xml 中添加 Web 模块的依赖,如下所示:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
2)创建后台代码
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@RequestMapping("/index")
public String index(String name) {
return "Hello, " + name;
}
}
3)启动并访问项目
项目的启动类是标识了 @Spring BootApplication 的类,代码如下所示:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SpringbootlearningApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootlearningApplication.class, args);
}
}
启动并访问 http://localhost:8080/index?name=laowang效果如下:
到目前为止 Spring Boot 的项目就创建并正常运行了。
设置配置文件
Spring Boot 的配置文件,是 resources 目录下 application.properties 文件,如下图所示:
可以在配置文件中设置很多关于 Spring 框架的配置,格式如下配置所示:
# 项目运行端口
server.port=8086
# 请求编码格式
server.tomcat.uri-encoding=UTF-8
Spring Boot 的其他功能开发和 Spring 相同(Spring Boot 2 是基于 Spring Framework 5 构建的),本文就不过多的介绍了。
Spring Boot 发布
Spring Boot 项目的发布方式有两种:
(1)内置容器运行
(2)外置容器(Tomcat)运行
内置容器运行
1)打包应用
使用窗口命令,在 pom.xml 同级目录下:
mvn clean package -Dmaven.test.skip=true
Dmaven.test.skip=true 表示不执行测试用例,也不编译测试用例类。
2)启动应用
后台启动 Java 程序, 命令如下:
nohup java -jar springbootlearning-0.0.1-SNAPSHOT.jar &
停止程序
首先查询 Java 程序的 pid
ps -ef|grep java
再停止程序
kill -9 pid
操作如下图所示:
扩展内容
指定程序运行日志文件
nohup java -jar springbootlearning-0.0.1-SNAPSHOT.jar 1>>logs 2>>errlog &
其中:
1:表示普通日志
2:表示错误日志
外置容器(Tomcat)运行
1)排除内置 Tomcat
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
将 scope 属性设置为 provided,表示打包不会包含此依赖。
2)配置启动类
在项目的启动类中继承 Spring BootServletInitializer 并重写 configure() 方法:
@SpringBootApplication
public class PackageApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(PackageApplication.class);
}
public static void main(String[] args) {
SpringApplication.run(PackageApplication.class, args);
}
}
3)打包应用
使用窗口命令,在 pom.xml 同级目录下:
mvn clean package -Dmaven.test.skip=true
4)部署应用
打包完成会在 target 目录下生成:项目名 + 版本号.war 文件,复制到 Tomcat 的 webapps 目录下,运行 Tomcat 即可。
2020/3/28
每天进步一点点