简介:
SpringBoot是伴随着Spring4.0诞生的;从字面理解,Boot是引导的意思,因此SpringBoot的宗旨就是简化开发,帮助开发者快速搭建Spring项目;
Spring Boot并不是一门新技术,可以说它继承于Spring。对于熟悉Spring的人来说入手门槛几乎为0,SpringBoot仅仅是对咱们经常做的一些Spring配置做了提炼,封装成了一个个注解;将经常引用的一些jar包整合到一起。使我们仅仅引用几个依赖可以快速的创建一个可运行的web项目,这就是其所谓的“习惯优于配置”的理念。
关于SpringBoot和传统SSM,SSH框架的比较,功能都是一样的,便于我们开发web工程,是不过在效率和方便性上有所区别,就好比Idea和Eclipse,反正我用过Idea一段时间后,很难再回到Eclipse。。
建构工程:
环境准备:
-jdk 1.8或以上(jdk1.6或1.7虽然也可以,但是不推荐,需要额外的配置)
-maven 3.0+
-Idea
开始构建项目
构建一个Sping Boot的Maven项目,强烈推荐Spring Initializr,它从本质上来说就是一个Web应用程序,它能为你生成Spring Boot项目结构。
Spring Initializr有2种用法:
1. 通过Web界面使用
2)选择构建工具Maven Project、Spring Boot版本1.5.4以及一些工程基本信息,可参考下图所示
点击Generate Project下载项目压缩包
导入工程到IDEA即可。
2.通过idea创建
IntelliJ IDEA 14.1已经支持Spring Boot了,创建Spring Boot操作步骤如下:
打开Idea-> new Project ->Spring Initializr ->填写group、artifact ->钩上web(开启web功能)->点下一步->FInish 就行了。
工程目录
创建完工程,工程的目录结构如下:
pom.xml 基本的依赖管理文件
resouces 资源文件
statics 静态资源
templates 模板资源
application.properties 一个空的properties文件,你可以根据需要添加配置属性。
SpringbootSimpleApplication 一个带有main()方法的类,用于启动应用程序。
SpringbootSimpleApplicationTests 一个空的Junit测试类。
解析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.erniu</groupId>
<artifactId>springboot-simple-application</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>springboot-simple-application</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
Spring Boot父级依赖:spring-boot-starter-parent
有了这个Spring Boot父级依赖,就表示当前项目就是Spring Boot项目了,spring-boot-starter-parent是一个特殊的starter,它用来提供相关的Maven默认依赖,使用它之后,常用的包依赖可以省去version标签。关于Spring Boot提供了哪些jar包的依赖,可查看本地maven仓库,xxx\repository\org\springframework\boot\spring-boot-dependencies\1.5.4.RELEASE\spring-boot-dependencies-1.5.1.RELEASE.pom,当然如果SpringBoot提供的依赖版本不是你需要的,可以声明其他版本的依赖覆盖掉。
起步依赖 spring-boot-starter-web
Spring Boot提供了很多”开箱即用“的依赖模块,都是以spring-boot-starter-xx作为命名的。这个开箱即用,体现了SpringBoot的方便之处,举个栗子:之前在用SpringMVC的时候,需要做很多的配置和引入各种需要的依赖,当依赖版本不匹配的时候,会出现各种莫名其妙的问题;而使用spring-boot-starter起步模块开箱即用,自动封装所需功能的依赖,starter在手,天下我有。
编写代码
创建restAPI(Controller):
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
/**
* Created by qianqian.niu on 2017/6/27.
*/
@RestController
//该注解等价于@Controller+@ResponseBody的结合,使用这个注解的类里面的方法都以json格式输出。
public class HelloController {
@GetMapping("/simple/{id}")
public String findById(@PathVariable Long id) {
return "hello erniu:" + id;
}
}
创建启动类:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
//Sprnig Boot项目的核心注解,主要目的是开启自动配置。后续讲解原理的时候再深入介绍
public class SpringbootSimpleApplication {
//该main方法作为项目启动的入口
public static void main(String[] args) {
SpringApplication.run(SpringbootSimpleApplication.class, args);
}
}
启动SpringbootFirstApplication的main方法,打开浏览器localhost:8080/simple/111,浏览器显示:
启动springboot 的三种方式
1. main方法启动
2. 使用maven命令 mvn spring-boot:run 在命令行启动该应用
3. java -jar 命令启动,需要先运行“mvn package”进行打包
结语:
这么简单的一个实例,搞起来用不了5分钟,和之前SpringMVC各种麻烦配置相比简直了。。
没有任何web.xml配置,没有任何spring.mvc配置,也没有配置tomcat容器,也没有各种依赖配置。。。
本篇博客作为Spring Boot的入门介绍,需要关注的点也就这么几个:
Spring Boot是什么东西
父级依赖的作用
起步依赖的概念
应用入口类的作用