近些年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. 。

  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种,具体如下:

  37. spring-boot-starter-actuator 
    增加了面向产品上线相关的功能,比如测量和监控。

  38. spring-boot-starter-remote-shell 
    增加了远程ssh shell的支持。 
    最后,Spring Boot应用启动器还有一些替换技术的启动器,具体如下:

  39. spring-boot-starter-jetty 
    引入了Jetty HTTP引擎(用于替换Tomcat. 。

  40. spring-boot-starter-log4j 
    支持Log4J日志框架。

  41. spring-boot-starter-logging 
    引入了Spring Boot默认的日志框架Logback。

  42. spring-boot-starter-tomcat 
    引入了Spring Boot默认的HTTP引擎Tomcat。

  43. spring-boot-starter-undertow 
    引入了Undertow HTTP引擎(用于替换Tomcat. 。

初探 Spring Boot的更多相关文章

  1. spring boot初探

    又被领导鄙视了,说让先把程序跑起来,再去研究深层次的东西.. 我又一次没有学会走就要开始跑了..说干就干 eclipse mars下载 新建maven project 加依赖 <dependen ...

  2. Spring Boot初探之log4j2配置

    一.背景 下面讲在使用Spring Boot搭建微服务框架时如何配置log4j2,通过log4j2输出系统中日志信息. 二.添加log4j2的配置文件 在项目的src/main/rescources目 ...

  3. Spring Boot初探之数据库访问

    一.背景 Spring boot是集服务发布.数据库管理.日志管理等于一身的服务开发框架:是微服务开发的全能小帮手.这章讲述一下如何使用spring boot访问MySQL数据库. 二.搭建基础环境 ...

  4. Spring Boot初探之restful服务发布

    一.背景 Spring boot是集服务发布.数据库管理.日志管理等于一身的服务开发框架:是微服务开发的全能小帮手.这章讲述一下如何使用spring boot发布restful服务接口. 二.搭建基础 ...

  5. spring boot中的底层配置文件application.yam(application.property)的装配原理初探

    *在spring boot中有一个基础的配置文件application.yam(application.property)用于对spring boot的默认设置做一些改动. *在spring boot ...

  6. spring boot 生命周期初探

    1.MytestApplication package com.gomepay; import org.springframework.boot.Banner; import org.springfr ...

  7. Spring Boot——开发新一代Spring应用

    Spring官方网站本身使用Spring框架开发,随着功能以及业务逻辑的日益复杂,应用伴随着大量的XML配置文件以及复杂的Bean依赖关系.随着Spring 3.0的发布,Spring IO团队逐渐开 ...

  8. [转]通过Spring Boot三分钟创建Spring Web项目

    来源:https://www.tianmaying.com/tutorial/project-based-on-spring-boot Spring Boot简介 接下来我们所有的Spring代码实例 ...

  9. Spring Boot 简单小Demo 转载!!!

    Spring Boot简介 接下来我们所有的Spring代码实例将会基于Spring Boot,因此我们先来了解一下Spring Boot这个大杀器. Spring早期使用XML配置的方式来配置Spr ...

随机推荐

  1. Goolge-Guava Concurrent中的Service

    最近在学习了下Google的Guava包,发现这真是一个好东西啊..由于平时也会写一些基于多线程的东西,所以特意了解了下这个Service框架.这里Guava包里的Service接口用于封装一个服务对 ...

  2. elasticsearch创建索引

    1.通过elasticsearch-head 创建 (1)登录localhost:9100 (2)点击复合查询 (3)输入内容 (4)勾选易读,点击验证是否是JSON格式 (5)点击提交请求,返回 { ...

  3. Selenium/HtmlUnit设置代理获取JS生成的网页

    通常我们使用Java提供的HttpURLConnection或者Apache的HttpClient获取的网页源代码都是直观可见的,其代码的内容和通过浏览器右键网页->点击查看网页源代码的内容一致 ...

  4. 【BZOJ】4766: 文艺计算姬

    [题目]给定两边节点数为n和m的完全二分图,求生成树数取模给定的p.n,m,p<=10^18. [算法]生成树计数(矩阵树定理) [题解]参考自 [bzoj4766]文艺计算姬 by WerKe ...

  5. JavaScript设置粘贴板

    设置复制 document.body.oncopy = function(){ alert('不许复制'); return false; }; 设置粘贴 document.getElementById ...

  6. bootstrap分页查询传递中文参数到后台(get方式提交)

    <!--分页 --> <div style="width: 380px; margin: 0 auto; margin-top: 50px;"> <u ...

  7. Msql中的触发器

    解发器 当执行某种操作时解发的行为. 比如, 当表变动时触发的动作. 像商城订单, 当下单时, 库存减少. 语法: create trigger trigger_name after/befor in ...

  8. 74.VS2013和opencv3.1.0安装教程

    一.先下载文件 1.VS2013 VS2013有很多版本,专业版,旗舰版,中文英文之类的,所对应的密钥也不一样.我选择的是简体中文专业版.下载链接如下. http://www.musnow.com/t ...

  9. 136.Single Number---异或、位运算

    题目链接 题目大意:给出一串数组,里面的数都是两个,只有一个数是一个,把这个只有一个的数找出来.时间复杂度最好是线性的,空间复杂度最好为O(1). 法一:利用map,空间换时间,代码如下(耗时26ms ...

  10. 174.Dungeon Game---dp

    题目链接 题目大意:从左上角到右下角,每一个格子都有各自的权值,如果权值为负,则当到达时,要失血:如果权值为正,则当到达时,要加血.当到达某个格子时,当前血量<=0,则死亡,到达不了右下角,所以 ...