Chapter 1
【去哪儿找】
- spring boot 官网地址:https://projects.spring.io/spring-boot/
- spring boot 2.0文档地址:https://docs.spring.io/spring-boot/docs/2.0.0.RELEASE/reference/htmlsingle/#boot-documentation
【获得帮助】
- 查看 How-to documents 文档,这里提供了一些最普遍问题的解决方案。
- spring boot 是构建在众多 spring 工程之上的。在 spring.io 站点中有大量的技术指南的文档,如果是刚接触 spring,可以尝试跟着引导案例学习(guides)。
- 去 stackoverflow.com 上提问,官方会关注带着 【spring-boot】标签的问题。
- 或者去 github.com/spring-projects/spring-boot/issues 上提交 bug。
【系统要求】
spring boot 2.0.0.RELEASE 要求:
- Java 8 及以上
- spring framework 5.0.4.RELEASE 及以上
- 明确支持使用 Maven 3.2+ 及 Gradle 4构建
servlet 容器支持(基于 servlet 3.1版本)
- Tomcat 8.5
- Jetty 9.4
- Undertow 1.4
除此以外,也可以将 spring boot 项目部署在任何 兼容 servlet 3.0+ 的容器上。
【安装 spring boot】
既可以通过 Java 开发工具来使用 spring boot,也可以将其作为一种命令行工具安装和使用,当然,这都需要基于 JDK 1.8 及以上的开发环境。
在 cmd 输入 "java -version" 查看当前系统 Java 版本。
请注意,本文及之后的 spring boot 文章代码均基于 Maven 演示。
spring boot 的依赖 groupId 均使用 org.springframework.boot。项目的 POM 文件会典型的继承于 spring-boot-starter-parent 项目,并且在后面声明其他依赖时,会使用到多个包含”Starters“的依赖。spring boot 也提供了一个用于生成可执行 jar 文件的 maven 插件。
以下是一个典型的 spring boot 项目 pom.xml 文件:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.example</groupId> <artifactId>myproject</artifactId> <version>0.0.1-SNAPSHOT</version> <!-- Inherit defaults from Spring Boot --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.0.RELEASE</version> </parent> <!-- Add typical dependencies for a web application --> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> <!-- Package as an executable jar --> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
注意:继承 spring-boot-starter-parent 是一种使用 spring boot 很好的方式, 但是这种方式并不是任何时候都适用的。当你不想使用默认的设置时,可以点击这里查看可调整的解决方式。
【Hello World】
开发之前检查环境,在 cmd 中
// 检查 JDK 版本 java -verson // 检查 Maven 版本 mvn -v
一切就绪后,准备开始。
- 最原始的方式创建 spring boot 项目
首先,创建 pom.xml 文件:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.example</groupId> <artifactId>myproject</artifactId> <version>0.0.1-SNAPSHOT</version> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.0.RELEASE</version> </parent> <!-- Additional lines to be added here... --> </project>
进入该 pom 文件所在位置,shift + 右键,选择“在此处打开命令窗口(win 10 是 PowerShell)”,输入“mvn package”,如果提示 mvn 命令不可用,则需要配置 maven 环境变量。执行成功后会在当前文件夹中生成一个 target 文件。以上步骤为测试 pom 文件的正确性及 maven 环境的检测。
第二步,添加依赖:
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies>
可以使用“mvn dependency:tree”查看当前项目依赖。
第三步,编写代码:
默认情况下,Maven 会编译 src/main/java 目录下的资源,因此需要创建这个目录结构,然后在 java 目录下创建名为 Example.java 的文件,内容如下:
import org.springframework.boot.*; import org.springframework.boot.autoconfigure.*; import org.springframework.web.bind.annotation.*; @RestController @EnableAutoConfiguration public class Example { @RequestMapping("/") String home() { return "Hello World!"; } // 这是 spring boot 程序的启动方式 public static void main(String[] args) throws Exception { SpringApplication.run(Example.class, args); } }
在这个 java 文件中有几个稍显不同的注解:
@RestController:这个注解并不是 spring boot 特有的,它属于 spring mvc,它的作用相当于@Controller 和 @ResponseBody,即:将该 bean 纳入 spring 管理,并在请求返回时,将内容序列化为 json。
@EnableAutoConfiguration:使用这个注解,spring boot 会根据添加的依赖去“猜测”如何配置 spring,由于 spring-boot-starter-web 这个依赖已经添加了 Tomcat 和 Spring MVC,auto-comfiguration 会假设你正在开发 web 应用,并自动设置 spring。
main 方法也值得注意,可以看到,main 方法将启动程序的任务委托给了 SpringApplication 类的 run 方法。run 方法启动应用,开启 spring 和 Tomcat。通过传递 Example.class 参数告诉 SpringApplication (它是 spring 主要的组件之一)。main 方法中的 args 数组(命令行参数)也被传递。
第四步,运行示例。
在 pom 文件所在目录下,输入命令:
$ mvn spring-boot:run . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.0.0.RELEASE) ....... . . . ....... . . . (log output here) ....... . . . ........ Started Example in 2.222 seconds (JVM running for 6.514)打开浏览器,访问 localhost:8080,会有如下输出:
Hello World!按 Ctrl + c,选择“Y” 退出程序。
【创建可执行 Jar】
可执行 Jar (有时候被称为 胖 Jar(“fat jar”))是包含了编译的类和代码运行所需要的所有依赖的 jar 包的归档文件(可简单理解为压缩包...)。
创建的方式有许多种,比较常见的是使用 Maven 插件 生成。这需要在 pom.xml 中添加以下内容:
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
注意:spring-boot-starter-parent 父项目的 pom.xml 文件中已经排除了 repackage goal,如果没有使用 父 pom 文件,需要自行声明这个配置,点击查看详情。
保存后,在命令行运行如下命令:
mvn package [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building myproject 0.0.1-SNAPSHOT [INFO] ------------------------------------------------------------------------ [INFO] .... .. [INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ myproject --- [INFO] Building jar: /Users/developer/example/spring-boot-example/target/myproject-0.0.1-SNAPSHOT.jar [INFO] [INFO] --- spring-boot-maven-plugin:2.0.0.RELEASE:repackage (default) @ myproject --- [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------
完成后,查看 target 目录,会看到 有名为 myproject-0.0.1-SNAPSHOT.jar 和 myproject-0.0.1-SNAPSHOT.jar.original 文件。后缀为 original 的文件是 maven 打包的原文件(在 spring boot 重新打包之前)。
此时,以下方式也可以启动项目:
java -jar target/myproject-0.0.1-SNAPSHOT.jar . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.0.0.RELEASE) ....... . . . ....... . . . (log output here) ....... . . . ........ Started Example in 2.536 seconds (JVM running for 2.864)
OK,准备工作完成,热身结束了。
下一篇,使用 spring boot !
相关推荐
springboot使用文档 特性 以及如何部署到云端 构建工具插件 how-to指南
springboot中国古诗词学习平台 中国古诗词网站中,用户可以主动的发布古诗词咨询问题信息,获取别人对该古诗词问题的解答和讨论,从而...关键技术:springboot、SSM、vue、MYSQL、MAVEN 数据库工具:Navicat、SQLyog
SpringBoot中文文档 SpringBoot参考文档 SpringBoot中文参考文档,最新版本,每个Java程序员必备书籍
3. **起步依赖**:SpringBoot通过“起步依赖”(Starter POMs)简化了Maven或Gradle配置,每个起步依赖都包含了运行特定功能所需的一组组件。 4. **健康检查**:提供了健康检查接口,可以获取应用的运行状态,如...
1. **SpringBoot**:SpringBoot是Spring框架的一个子项目,它简化了Java Web应用程序的开发,通过预配置的依赖和自动配置功能,可以让开发者快速启动项目。在本项目中,SpringBoot作为后端服务的基础框架,提供...
【尚硅谷SpringBoot课件笔记文档】是一份全面学习SpringBoot框架的重要资源,它整合了课程笔记、课件以及在教学过程中使用的各种文档,旨在帮助Java开发者深入理解和掌握SpringBoot的核心概念和技术。以下是对这些...
SpringBoot是Spring框架的一种简化和快速开发方式,它旨在简化Spring应用的初始搭建以及开发过程。这个学习资源包聚焦于SpringBoot的使用,特别是结合Spring5和SpringBoot2.0的配置,以及如何配置热启动插件。让我们...
springboot-java语言学习平台 系统有首页,个人中心,学生管理,教师管理,课程信息管理,类型管理,作业信息管理,资料信息管理,签到...关键技术:springboot、SSM、vue、MYSQL、MAVEN 数据库工具:Navicat、SQLyog
springboot 【SpringBoot技术文档】SpringBoot部署与服务配置方式
框架:springboot 技术:Vue JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7(一定要5.7版本) 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven3.3.9 系统是一个很好的项目,结合了...
SpringBoot框架是Java开发中的一个流行选择,它简化了创建独立、生产级别的基于Spring的应用程序。这个基于SpringBoot的项目核心文档提供了全面的信息,对于理解项目结构、功能和实现细节至关重要。以下是这些文档的...
框架:springboot 技术:Vue JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7(一定要5.7版本) 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven3.3.9 系统是一个很好的项目,结合了...
标题 "基于SpringBoot的开源数据库表结构导出word文档工具.zip" 提供的信息表明,这是一个使用SpringBoot框架开发的开源工具,其主要功能是将数据库的表结构导出为Word文档。SpringBoot是Java生态中的一个流行框架,...
框架:springboot 架构:B/S 数据库:mysql 【演示视频】 https://pan.quark.cn/s/5cda95b17ee0 【实现功能】 本次开发的文档管理系统有管理员和用户两个角色。管理员功能有论坛管理,公告管理,资料管理,用户...
框架:springboot 技术:Vue JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7(一定要5.7版本) 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven3.3.9 系统是一个很好的项目,结合了...
开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7(一定要5.7版本) 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven3.3.9
框架:springboot 技术:Vue JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7(一定要5.7版本) 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven3.3.9 系统是一个很好的项目,结合了...
框架:springboot 架构:B/S 数据库:mysql 【演示视频】 https://pan.quark.cn/s/5cda95b17ee0 【实现功能】 管理员角色: 医院管理,医院注册,医院文章,医生信息, 用户角色: 医院注册,医疗安排 医院角色: ...
框架:springboot 技术:Vue JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7(一定要5.7版本) 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven3.3.9 系统是一个很好的项目,结合了...
框架:springboot 架构:B/S 数据库:mysql 【实现功能】 主要功能包括管理员:首页、个人中心、用户管理、电影类型管理、放映厅管理、电影信息管理、购票统计管理、系统管理、订单管理,用户前台;首页、电影信息...