SpringBoot是Spring项目中的一个子工程,与咱们所熟知的Spring-framework 同属于spring的产品:java
咱们能够看到下面的一段介绍:程序员
Takes an opinionated view of building production-ready Spring applications. Spring Boot favors convention over configuration and is designed to get you up and running as quickly as possible.web
翻译一下:spring
用一些固定的方式来构建生产级别的spring应用。Spring Boot 推崇约定大于配置的方式以便于你可以尽量快速的启动并运行程序。apache
其实人们把Spring Boot 称为搭建程序的脚手架
。其最主要做用就是帮咱们快速的构建庞大的spring项目,而且尽量的减小一切xml配置,作到开箱即用,迅速上手,让咱们关注与业务而非配置。安全
java一直被人诟病的一点就是臃肿、麻烦。当咱们还在辛苦的搭建项目时,可能Python程序员已经把功能写好了,究其缘由注意是两点:springboot
复杂的配置,服务器
项目各类配置实际上是开发时的损耗, 由于在思考 Spring 特性配置和解决业务问题之间须要进行思惟切换,因此写配置挤占了写应用程序逻辑的时间。app
一个是混乱的依赖管理。maven
项目的依赖管理也是件吃力不讨好的事情。决定项目里要用哪些库就已经够让人头痛的了,你还要知道这些库的哪一个版本和其余库不会有冲突,这难题实在太棘手。而且,依赖管理也是一种损耗,添加依赖不是写应用程序代码。一旦选错了依赖的版本,随之而来的不兼容问题毫无疑问会是生产力杀手。
而SpringBoot让这一切成为过去!
Spring Boot 简化了基于Spring的应用开发,只须要“run”就能建立一个独立的、生产级别的Spring应用。Spring Boot为Spring平台及第三方库提供开箱即用的设置(提供默认设置,存放默认配置的包就是启动器),这样咱们就能够简单的开始。多数Spring Boot应用只须要不多的Spring配置。
咱们可使用SpringBoot建立java应用,并使用java –jar 启动它,就能获得一个生产级别的web工程。
Spring Boot 主要目标是:
更多细节,你们能够到官网查看。
接下来,咱们就来利用SpringBoot搭建一个web工程,体会一下SpringBoot的魅力所在!
咱们先新建一个空的工程:
工程名为demo:
新建一个model:
使用maven来构建:
而后填写项目坐标:
目录结构:
项目结构:
看到这里不少同窗会有疑惑,前面说传统开发的问题之一就是依赖管理混乱,怎么这里咱们还须要管理依赖呢?难道SpringBoot不帮咱们管理吗?
别着急,如今咱们的项目与SpringBoot尚未什么关联。SpringBoot提供了一个名为spring-boot-starter-parent的工程,里面已经对各类经常使用依赖(并不是所有)的版本进行了管理,咱们的项目须要以这个项目为父工程,这样咱们就不用操心依赖的版本问题了,须要什么依赖,直接引入坐标便可!
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.0.RELEASE</version> </parent>
为了让SpringBoot帮咱们完成各类自动配置,咱们必须引入SpringBoot提供的自动配置依赖,咱们称为启动器
。由于咱们是web项目,这里咱们引入web启动器:
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies>
须要注意的是,咱们并无在这里指定版本信息。由于SpringBoot的父工程已经对版本进行了管理了。
这个时候,咱们会发现项目中多出了大量的依赖:
这些都是SpringBoot根据spring-boot-starter-web这个依赖自动引入的,并且全部的版本都已经管理好,不会出现冲突。
默认状况下,maven工程的jdk版本是1.5,而咱们开发使用的是1.8,所以这里咱们须要修改jdk版本,只须要简单的添加如下属性便可:
<properties> <java.version>1.8</java.version> </properties>
<?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.leyou.demo</groupId> <artifactId>springboot-demo</artifactId> <version>1.0-SNAPSHOT</version> <properties> <java.version>1.8</java.version> </properties> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.0.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> </project>
Spring Boot项目经过main函数便可启动,咱们须要建立一个启动类:
而后编写main函数:
@SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
接下来,咱们就能够像之前那样开发SpringMVC的项目了!
咱们编写一个controller:
代码:
@RestController public class HelloController { @GetMapping("hello") public String hello(){ return "hello, spring boot!"; } }
配置文件除了可使用application.properties类型,还可使用后缀名为: .yml 或者 .yaml的类型,也就是:application.yml或者application.yaml
Yaml是一种简洁的非标记语言。Yaml是以数据为中心,使用空白,缩进,分行组织数据,从而使得表示更加简洁易读。
基本格式:
#服务端口 server: port: 8080
若是两个配置文件都有,会把两个文件的配置合并,若是有重复属性,以Properties中的为准
接下来,咱们运行main函数,查看控制台:
而且能够看到监听的端口信息:
/hello
路径已经映射到了HelloController
中的hello()
方法打开页面访问:http://localhost:8080/hello
测试成功了!