初探 Spring Boot
近些年Spring Boot都特别火,一直都想来学习学习,奈何近期公司项目繁忙,一直都没有时间来学习,今天终于是休息一天,于是来一睹 SpringBoot 的风采。
一、什么是Spring Boot
Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要样板化的配置。通过这种方式,Spring Boot致力与在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。(摘自搜狗百科)
二、Spring Boot 的特点
1. Spring Boot 可以创建键独立的Spring应用程序,为基于 Spring 的开发提供了更快的如门体验。它并不是对 Spring 功能的增强,而是提供了一种快速使用Spring的方式。
2. Spring Boot 它内嵌Tomcat,不需要部署 war 文件。
3. Spring Boot 简化了Maven 配置,配置 spring-boot-starter-parent 之后,不需要再再其他包后配置所需 jar 包的版本,Spring Boot 会为我们选择最合适的版本。
4. Spring Boot 自动配置Spring。
5. Spring Boot 提供了一些大型项目中常见的非功能特性,如:生产就绪型功能,如指标,健康检查和外部配置等。
6. Spring Boot 开箱即用,没有代码生成,也不需要 XML 配置。同时也可以修改默认值来满足特定需求。
三、简单的 Demo
开发环境:我这里使用的是 eclipse ,JDK使用的是1.8 , 项目管理工具使用的是Maven。
1. 创建一个 Maven 项目
2. 在pom.xml 中添加 spring-boot-starter-parent 依赖包,这个包加入之后,在后面需要引入的包中就不需要再指定版本号。
<!-- spring boot 父节点依赖,引入这个包之后相关引入
就不需要添加version配置,spring boot会选择最合适的版本进行添加 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.0.RELEASE</version>
</parent>
3. 指定 JDK ,如果不指定,则默认为1.6
<properties>
<!-- 指定JDK 1.8, 不设置默认1.6 -->
<java.version>1.8</java.version>
</properties>
4. 添加 spring-boot-starter-web 依赖,来支持全栈式Web开发,包括Tomcat和spring-webmvc。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
5. 创建 Controller ,这里@RestController 相当于spring的 @Controller 和 @requestBody
/**
* 这里的 @RestController 相当于spring的 @Controller 和 @requestBody
* @author Wuyouxin
*
*/
@RestController
public class HelloController { @RequestMapping("/hello")
public String hello () {
return "hello Spring Boot";
}
}
6. 创建启动类 APP.main() 方法, 这里的SpringBootApplication 就是在指定一个Spring Boot 的应用。
/**
* 这里的SpringBootApplication 就是在指定一个Spring Boot 的应用
*
* @author Wuyouxin
*
*/
@SpringBootApplication
public class App { public static void main( String[] args ) { //在Main方法中启动应用程序
SpringApplication.run(App.class, args);
}
}
SpringBoot项目通过SpringApplication.run(App.class, args)来启动,下面这位老铁在它的文中详细解读了 run 方法的源码,有兴趣的朋友可以去看一下:https://www.jb51.net/article/120362.htm
7. 启动main方法

在启动的日志中有Tomcat的端口。
8. 使用 127.0.0.1:8080/hello 进行验证

访问成功。
四、最后附上 Spring Boot Starter 的一些依赖包
1. spring-boot-starter
这是Spring Boot的核心启动器,包含了自动配置、日志和YAML。
2. spring-boot-starter-amqp
通过spring-rabbit来支持AMQP协议(Advanced Message Queuing Protocol. 。
3. spring-boot-starter-aop
支持面向方面的编程即AOP,包括spring-aop和AspectJ。
4. spring-boot-starter-artemis
通过Apache Artemis支持JMS的API(Java Message Service API. 。
5. spring-boot-starter-batch
支持Spring Batch,包括HSQLDB数据库。
6. spring-boot-starter-cache
支持Spring的Cache抽象。
7.spring-boot-starter-cloud-connectors
支持Spring Cloud Connectors,简化了在像Cloud Foundry或Heroku这样的云平台上连接服务。
8. spring-boot-starter-data-elasticsearch
支持ElasticSearch搜索和分析引擎,包括spring-data-elasticsearch。
9.spring-boot-starter-data-gemfire
支持GemFire分布式数据存储,包括spring-data-gemfire。
10. spring-boot-starter-data-jpa
支持JPA(Java Persistence API. ,包括spring-data-jpa、spring-orm、Hibernate。
11. spring-boot-starter-data-mongodb
支持MongoDB数据,包括spring-data-mongodb。
12. spring-boot-starter-data-rest
通过spring-data-rest-webmvc,支持通过REST暴露Spring Data数据仓库。
13. spring-boot-starter-data-solr
支持Apache Solr搜索平台,包括spring-data-solr。
14. spring-boot-starter-freemarker
支持FreeMarker模板引擎。
15. spring-boot-starter-groovy-templates
支持Groovy模板引擎。
16.spring-boot-starter-hateoas
通过spring-hateoas支持基于HATEOAS的RESTful Web服务。
17. spring-boot-starter-hornetq
通过HornetQ支持JMS。
18. spring-boot-starter-integration
支持通用的spring-integration模块。
19. spring-boot-starter-jdbc
支持JDBC数据库。
20. spring-boot-starter-jersey
支持Jersey RESTful Web服务框架。
21. spring-boot-starter-jta-atomikos
通过Atomikos支持JTA分布式事务处理。
22. spring-boot-starter-jta-bitronix
通过Bitronix支持JTA分布式事务处理。
23. spring-boot-starter-mail
支持javax.mail模块。
24. spring-boot-starter-mobile
支持spring-mobile。
25. spring-boot-starter-mustache
支持Mustache模板引擎。
26. spring-boot-starter-redis
支持Redis键值存储数据库,包括spring-redis。
27. spring-boot-starter-security
支持spring-security。
28. spring-boot-starter-social-facebook
支持spring-social-facebook
29. spring-boot-starter-social-linkedin
支持pring-social-linkedin
30. spring-boot-starter-social-twitter
支持pring-social-twitter
31. spring-boot-starter-test
支持常规的测试依赖,包括JUnit、Hamcrest、Mockito以及spring-test模块。
32. spring-boot-starter-thymeleaf
支持Thymeleaf模板引擎,包括与Spring的集成。
33. spring-boot-starter-velocity
支持Velocity模板引擎。
34. spring-boot-starter-web
S支持全栈式Web开发,包括Tomcat和spring-webmvc。
35. spring-boot-starter-websocket
支持WebSocket开发。
36. spring-boot-starter-ws
支持Spring Web Services。
Spring Boot应用启动器面向生产环境的还有2种,具体如下:
1. spring-boot-starter-actuator
增加了面向产品上线相关的功能,比如测量和监控。
2. spring-boot-starter-remote-shell
增加了远程ssh shell的支持。
Spring Boot应用启动器还有一些替换技术的启动器,具体如下:
1. spring-boot-starter-jetty
引入了Jetty HTTP引擎(用于替换Tomcat. 。
2. spring-boot-starter-log4j
支持Log4J日志框架。
3. spring-boot-starter-logging
引入了Spring Boot默认的日志框架Logback。
4. spring-boot-starter-tomcat
引入了Spring Boot默认的HTTP引擎Tomcat。
5. spring-boot-starter-undertow
引入了Undertow HTTP引擎(用于替换Tomcat. 。
spring-boot-starter
这是Spring Boot的核心启动器,包含了自动配置、日志和YAML。spring-boot-starter-amqp
通过spring-rabbit来支持AMQP协议(Advanced Message Queuing Protocol. 。spring-boot-starter-aop
支持面向方面的编程即AOP,包括spring-aop和AspectJ。spring-boot-starter-artemis
通过Apache Artemis支持JMS的API(Java Message Service API. 。spring-boot-starter-batch
支持Spring Batch,包括HSQLDB数据库。spring-boot-starter-cache
支持Spring的Cache抽象。spring-boot-starter-cloud-connectors
支持Spring Cloud Connectors,简化了在像Cloud Foundry或Heroku这样的云平台上连接服务。spring-boot-starter-data-elasticsearch
支持ElasticSearch搜索和分析引擎,包括spring-data-elasticsearch。spring-boot-starter-data-gemfire
支持GemFire分布式数据存储,包括spring-data-gemfire。spring-boot-starter-data-jpa
支持JPA(Java Persistence API. ,包括spring-data-jpa、spring-orm、Hibernate。spring-boot-starter-data-mongodb
支持MongoDB数据,包括spring-data-mongodb。spring-boot-starter-data-rest
通过spring-data-rest-webmvc,支持通过REST暴露Spring Data数据仓库。spring-boot-starter-data-solr
支持Apache Solr搜索平台,包括spring-data-solr。spring-boot-starter-freemarker
支持FreeMarker模板引擎。spring-boot-starter-groovy-templates
支持Groovy模板引擎。spring-boot-starter-hateoas
通过spring-hateoas支持基于HATEOAS的RESTful Web服务。spring-boot-starter-hornetq
通过HornetQ支持JMS。spring-boot-starter-integration
支持通用的spring-integration模块。spring-boot-starter-jdbc
支持JDBC数据库。spring-boot-starter-jersey
支持Jersey RESTful Web服务框架。spring-boot-starter-jta-atomikos
通过Atomikos支持JTA分布式事务处理。spring-boot-starter-jta-bitronix
通过Bitronix支持JTA分布式事务处理。spring-boot-starter-mail
支持javax.mail模块。spring-boot-starter-mobile
支持spring-mobile。spring-boot-starter-mustache
支持Mustache模板引擎。spring-boot-starter-redis
支持Redis键值存储数据库,包括spring-redis。spring-boot-starter-security
支持spring-security。spring-boot-starter-social-facebook
支持spring-social-facebookspring-boot-starter-social-linkedin
支持pring-social-linkedinspring-boot-starter-social-twitter
支持pring-social-twitterspring-boot-starter-test
支持常规的测试依赖,包括JUnit、Hamcrest、Mockito以及spring-test模块。spring-boot-starter-thymeleaf
支持Thymeleaf模板引擎,包括与Spring的集成。spring-boot-starter-velocity
支持Velocity模板引擎。spring-boot-starter-web
S支持全栈式Web开发,包括Tomcat和spring-webmvc。spring-boot-starter-websocket
支持WebSocket开发。spring-boot-starter-ws
支持Spring Web Services。
Spring Boot应用启动器面向生产环境的还有2种,具体如下:spring-boot-starter-actuator
增加了面向产品上线相关的功能,比如测量和监控。spring-boot-starter-remote-shell
增加了远程ssh shell的支持。
最后,Spring Boot应用启动器还有一些替换技术的启动器,具体如下:spring-boot-starter-jetty
引入了Jetty HTTP引擎(用于替换Tomcat. 。spring-boot-starter-log4j
支持Log4J日志框架。spring-boot-starter-logging
引入了Spring Boot默认的日志框架Logback。spring-boot-starter-tomcat
引入了Spring Boot默认的HTTP引擎Tomcat。spring-boot-starter-undertow
引入了Undertow HTTP引擎(用于替换Tomcat. 。
初探 Spring Boot的更多相关文章
- spring boot初探
又被领导鄙视了,说让先把程序跑起来,再去研究深层次的东西.. 我又一次没有学会走就要开始跑了..说干就干 eclipse mars下载 新建maven project 加依赖 <dependen ...
- Spring Boot初探之log4j2配置
一.背景 下面讲在使用Spring Boot搭建微服务框架时如何配置log4j2,通过log4j2输出系统中日志信息. 二.添加log4j2的配置文件 在项目的src/main/rescources目 ...
- Spring Boot初探之数据库访问
一.背景 Spring boot是集服务发布.数据库管理.日志管理等于一身的服务开发框架:是微服务开发的全能小帮手.这章讲述一下如何使用spring boot访问MySQL数据库. 二.搭建基础环境 ...
- Spring Boot初探之restful服务发布
一.背景 Spring boot是集服务发布.数据库管理.日志管理等于一身的服务开发框架:是微服务开发的全能小帮手.这章讲述一下如何使用spring boot发布restful服务接口. 二.搭建基础 ...
- spring boot中的底层配置文件application.yam(application.property)的装配原理初探
*在spring boot中有一个基础的配置文件application.yam(application.property)用于对spring boot的默认设置做一些改动. *在spring boot ...
- spring boot 生命周期初探
1.MytestApplication package com.gomepay; import org.springframework.boot.Banner; import org.springfr ...
- Spring Boot——开发新一代Spring应用
Spring官方网站本身使用Spring框架开发,随着功能以及业务逻辑的日益复杂,应用伴随着大量的XML配置文件以及复杂的Bean依赖关系.随着Spring 3.0的发布,Spring IO团队逐渐开 ...
- [转]通过Spring Boot三分钟创建Spring Web项目
来源:https://www.tianmaying.com/tutorial/project-based-on-spring-boot Spring Boot简介 接下来我们所有的Spring代码实例 ...
- Spring Boot 简单小Demo 转载!!!
Spring Boot简介 接下来我们所有的Spring代码实例将会基于Spring Boot,因此我们先来了解一下Spring Boot这个大杀器. Spring早期使用XML配置的方式来配置Spr ...
随机推荐
- Keras学习笔记1--基本入门
""" 1.30s上手keras """ #keras的核心数据结构是“模型”,模型是一种组织网络层的方式,keras 的主要模型是Sequ ...
- MongoDB - MongoDB CRUD Operations, Insert Documents
MongoDB provides the following methods for inserting documents into a collection: db.collection.inse ...
- (4.1)LingPipe在Eclipse中的运行
酒店评论情感分析系统(四)——LingPipe在Eclipse中的运行 本来打算在做这个项目的时候,使用基于语义的文本倾向性分析方法,即先通过对评论文本进行中文分析,去停用词,然后在倾向性语义模式库的 ...
- 【BZOJ】1597 [Usaco2008 Mar]土地购买
[算法]DP+斜率优化 [题意]n(n≤50000)块土地,长ai宽bi,可分组购买,每组代价为max(ai)*max(bi),求最小代价. [题解] 斜率优化:http://www.cnblogs. ...
- 20155117 王震宇 2006-2007-2 《Java程序设计》第三周学习总结
20155117 王震宇 2006-2007-2 <Java程序设计>第三周学习总结 教材学习内容总结 在JAVA程序编写中,常常要用到对象(Object),要产生对象首先要定义类(Cla ...
- 七牛云 PHP SDK服务器鉴权失败!参数解释
昨天搞了一下午,用7牛官方的SDK demo 1.上传凭证 $policy = array( 'callbackUrl' => 'http://api.example.com/qiniu/upl ...
- mysql 使用shell时出现 ERROR 2006 (HY000): MySQL server has gone away 解决方法
ERROR (HY000): MySQL server has gone away No connection. Trying to reconnect... Connection Current d ...
- Spring Session加Redis
session是一个非常常见的概念.session的作用是为了辅助http协议,因为http是本身是一个无状态协议.为了记录用户的状态,session机制就应运而生了.同时session也是一个非常老 ...
- NYOJ 328 完全覆盖 (找规律)
题目链接 描述 有一天小董子在玩一种游戏----用21或12的骨牌把mn的棋盘完全覆盖.但他感觉游戏过于简单,于是就随机生成了两个方块的位置(可能相同),标记一下,标记后的方块不用覆盖.还要注意小董子 ...
- 重载jquery on方法实现click事件在移动端的快速响应
额,这个标题取的还真是挺装的... 其实我想表达的是jquery click事件如何在移动端自动转换成touchstart事件. 因为移动端click事件会比touchstart事件慢几拍 移动设备某 ...