什么是Springboot?
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
Springboot 特点
- 创建独立的Spring应用程序
- 嵌入的Tomcat,无需部署WAR文件
- 简化Maven配置
- 自动配置Spring
- 提供生产就绪型功能,如指标,健康检查和外部配置
- 绝对没有代码生成和对XML没有要求配置
第一个Springboot 程序:hello World!
- 首先进入Springboot 官网 https://projects.spring.io/spring-boot,了解相关信息,如maven 配置:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.10.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
- 新建一个 maven web 项目
├─src
│ └─main
│ ├─java
│ ├─resources
│ └─webapp
└─pom.xml
- 在pom.xml 文件中添加 [01] 步中maven 依赖
- 新建启动类,person.jack.App.java,代码如下:
package person.wuchao;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}
- 新建Controller 类 person.jack.controller.Hello.java,代码如下:
package person.wuchao.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.web.bind.annotation.*;
import person.wuchao.bean.Person;
/**
* 定义一个REST 风格 Controller
*/
@RestController
public class Hello {
@ResponseBody
@GetMapping("/hello") //定义一个Get 请求映射
public String hello(){
return "Hello SpringBOOT!";
}
}
- 运行[04]步中的main 方法,即:启动项目
"C:\Program Files\Java\jdk1.8.0_91\bin\java" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2017.3.2\lib\idea_rt.jar=50720:C:\Program Files\JetBrains\IntelliJ IDEA
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v1.5.10.RELEASE)
2018-02-05 23:14:44.808 INFO 22712 --- [ restartedMain] o.s.b.d.a.OptionalLiveReloadServer : LiveReload server is running on port 35729
2018-02-05 23:14:44.853 INFO 22712 --- [ restartedMain] o.s.j.e.a.AnnotationMBeanExporter : Registering beans for JMX exposure on startup
2018-02-05 23:14:44.955 INFO 22712 --- [ restartedMain] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http)
# 服务启动成功,springboot 默认采用tomcat容器,默认http端口为:8080
- 启动浏览器,访问:http://localhost:8080/hello
# 页面打印
Hello SpringBOOT!
- 至此,第一个Springboot程序完成!
- 分析:
从业务使用来看,似乎同SpringMVC很类似;不错,SpringBoot 采用的本身就是SpringMVC
没有了SpringMVC 繁琐的xml 配置文件
maven 配置大大简化,该例我们只写入了一个maven 依赖
-
启动方式发生了改变,没有再手动配置容器(Tomcat)
这就是Spirngboot,可以简单的把它看成是对Springmvc 的开发优化
- 热部署,在实际开发工程中源代码经常更改,若每次手动重启则太浪费时间,Springboot 提供了一个devtools 包,自动重启以节约时间提高开发效率,使用方法:在maven 中添加devtools依赖即可:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
# 这个时候再改动源码,idea(或eclipse)并重新编译(Ctrl+B or Ctrl+F9),服务就会自动重启