Spring Boot是为了简化Spring应用的创建、运行、调试、部署等而出现的,使用它可以做到专注于Spring应用的开发,而无需过多关注XML的配置。
它提供了一堆依赖打包,并已经按照使用习惯解决了依赖问题---习惯大于约定。默认使用tomcat作为服务器,使用logback提供日志记录。
1 Spring Boot的起源
基于Spring开发的应用伴随着大量的XML配置文件以及复杂的Bean依赖关系,限制了开发生产力。随着Spring3.0的发布,Spring开始逐渐改变这种开发模式,在开发过程中大量使用“约定大于配置”(**Convention Over Configuration**)的思想,基于这样的思想,开发者可以避免杂乱的XML文件,以及繁琐的配置对开发流程造成的干扰。
Spring Boot就是在这样的大背景下被抽象出来的开发框架,Spring Boot并不是脱离Spring或者替代Spring 的解决方案,根据官网的解释“*SpringBoot makes it easy to create stand-alone, production-gradeSpring basedApplications that you can ‘just run’*”。也就是SpringBoot是一种快速搭建Spring应用的方法。SpringBoot改变的不是Spring而是Spring 的开发方式,能够更加快速,敏捷的开发基于Spring框架的应用程序。
1.1 Springboot hello world
Spring可以说是Java EE开发中真正意义上的标准,但是现在的Spring变得越来越笨重,眼花缭乱的XML文件,繁琐的配置,低下的开发部署效率等等限制了开发生产力。针对这样的痛点,Spring Boot在Spring4.0基础上长出来,Boot是引导的意思,意为帮助开发者快速搭建Spring应用。当前看来,SpringBoot是当前Spring诸多子项目里最火爆的,版本迭代速度非常快。
Spring Boot是为了简化Spring应用的创建、运行、调试、部署等而出现的,使用它可以做到专注于Spring应用的开发,而无需过多关注XML的配置。
Spring Boot默认使用tomcat作为服务器,使用logback提供日志记录。
下载地址:
https://spring.io/guides/gs/spring-boot/
下载后
解压,进入到gs-spring-boot-master/initial文件夹中,已有DEMO可以直接运行。
$ cat src/main/java/hello/HelloController.java
packagehello;
importorg.springframework.web.bind.annotation.RestController;
importorg.springframework.web.bind.annotation.RequestMapping;
@RestController
publicclass HelloController {
@RequestMapping("/")
public String index() {
return"Greetings from SpringBoot!";
}
}
可以使用MAVEN或Gradle进行构建,使用Gradle如下:
./gradlew build
运行
java -jar build/libs/gs-spring-boot-0.1.0.jar
使用MAVEN如下:
mvn package
java -jar target/gs-spring-boot-0.1.0.jar
用浏览器打开本地8080端口,
或curl localhost:8080
1.1 eclipse安装STS插件
Help ->Eclipse Marketplace…
Search或选择“Popular”标签,选择SpringTool Suite (STS) for Eclipse插件,安装。
如果出现如下错误:
An internal error occurred during: "Building UImodel".
是说明eclipse和Spring Boot不匹配。
或者可以在https://spring.io/tools/sts/legacy
中下载,软件是基于eclipse的。
下载解压后双击STS即可运行。
1.2 STS创建项目
File->New->Starter Project
根据创建的项目名字不一样,主类名字会存在差异,或者在http://start.spring.io/,中创建项目。
导入项目包:
importorg.springframework.web.bind.annotation.RequestMapping;
importorg.springframework.web.bind.annotation.ResponseBody;
在主函数中加入如下映射:
//添加了一个方法
@RequestMapping("/hello")
@ResponseBody
public String hello(){
return " hello world";
}
此外在类的外部增加:
@Controller
在pom.xml中加入如下内容:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
右键进行Run AS->SpringBoot App进行运行。
然后可以通过浏览器进行访问:
浏览器中会返回hello world.
代码说明,其中:
public staticvoid main(String[] args) { SpringApplication.run(DemoApplication.class, args); }
是spring boot的入口。