Spring Boot

Spring Boot 简介

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。

Spring Boot特点

  1. 创建独立的Spring应用程序
  2. 嵌入的Tomcat,无需部署WAR文件
  3. 简化Maven配置
  4. 自动配置Spring
  5. 提供生产就绪型功能,如指标,健康检查和外部配置
  6. 绝对没有代码生成和对XML没有要求配置

Spring Boot 主要目标是

  • 为所有 Spring 的开发提供一个从根本上更快的入门体验

  • 开箱即用,但通过自己设置参数,即可快速摆脱这种方式。

  • 提供了一些大型项目中常见的非功能性特性,如内嵌服务器、安全、指标,健康检测、外部化配置等

  • 绝对没有代码生成,也无需 XML 配置。

应用的全局配置文件

可以在Spring Boot项目的src/main/resources目录下或者在类路径下创建一个全局的配置文件application.properties或者application.yml的文件用于修改Spring Boot项目的默认配置值,例如修改项目的默认端口,或者进入DispatcherServlet的请求地址规则等。通常,在实际开发中我们习惯使用application.properties文件作为应用的全局配置文件,一般我们放到src/main/resources目录下。例如,在src/main/resources目录下创建一个名称为application.yml的文件,配置内容如下:

spring:
application:
name: spring-boot-demo
server:
port: 8080
servlet:
context-path: /demo

Starters启动器

Spring Boot为我们提供了简化项目开发的Starter启动器,例如我们在项目中使用的pom.xml文件下配置:

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>

Spring Boot就会自动关联web开发相关的依赖,如Tomcat以及spring-webmvc等,进而对web开发进行支持,同时相关技术的配置也将实现自动配置,程序员即可从繁琐的配置文件中脱身而出了。除此之外,官方还提供了如下Starters:

  • spring-boot-starter:这是Spring Boot的核心启动器,包含了自动配置、日志和YAML文件的支持。

  • spring-boot-starter-activemq:为JMS使用Apache ActiveMQ ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线

  • 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-cassandra:使用Cassandra分布式数据库、Spring Data Cassandra,Apache Cassandra是一套开源分布式NoSQL数据库系统。

  • spring-boot-starter-data-couchbase:使用Couchbase 文件存储数据库、Spring Data Couchbase。Spring Data是一个用于简化数据库访问,并支持云服务的开源框架。

  • 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-ldap:支持 Spring Data LDAP。

  • spring-boot-starter-data-mongodb:支持MongoDB数据,包括spring-data-mongodb。

  • spring-boot-starter-data-neo4j:使用Neo4j图形数据库、Spring Data Neo4j Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。

  • spring-boot-starter-redis:支持Redis键值存储数据库,包括spring-redis。

  • 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-integration:支持通用的spring-integration模块。

  • spring-boot-starter-jdbc:支持JDBC数据库。

  • spring-boot-starter-jersey:支持Jersey RESTful Web服务框架。

  • spring-boot-starter-hornetq:通过HornetQ支持JMS。

  • 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-security:支持spring-security。

  • spring-boot-starter-social-facebook:支持spring-social-facebook

  • spring-boot-starter-social-linkedin:支持pring-social-linkedin

  • spring-boot-starter-social-twitter:支持pring-social-twitter

  • spring-boot-starter-test:支持常规的测试依赖,包括JUnit、Hamcrest、Mockito以及spring-test模块。

  • spring-boot-starter-thymeleaf:支持Thymeleaf模板引擎,包括与Spring的集成。

  • spring-boot-starter-velocity:支持Velocity模板引擎。

  • spring-boot-starter-web:支持全栈式Web开发,包括Tomcat和spring-webmvc。

  • spring-boot-starter-websocket:支持WebSocket开发。

  • spring-boot-starter-ws:支持Spring Web Services。

Spring Boot 自动配置的原理

Spring Boot在进行SpringApplication对象实例化时会加载META-INF/spring.factories文件,将该配置文件中的配置载入到Spring容器,进行自动配置。

开始开发 Spring Boot 应用

  • 起步依赖
<?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.andy</groupId>
<version>1.0.0.RELEASE</version>
<artifactId>spring-boot-demo</artifactId> <dependencyManagement>
<dependencies>
<dependency>
<groupId>io.spring.platform</groupId>
<artifactId>platform-bom</artifactId>
<version>Cairo-SR2</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement> <dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies> </project>
  • 启动类
@SpringBootApplication
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}
  • 启动后访问localhost:8080/hello
@RestController
public class HelloWorldController { @RequestMapping("/hello")
public String hello() {
return "Hello,World!";
}
}

Spring Boot从入门到精通之:一、Spring Boot简介及快速入门的更多相关文章

  1. Spring Boot 揭秘与实战(二) 数据缓存篇 - 快速入门

    文章目录 1. 声明式缓存 2. Spring Boot默认集成CacheManager 3. 默认的 ConcurrenMapCacheManager 4. 实战演练5. 扩展阅读 4.1. Mav ...

  2. SpringBoot简介与快速入门

    一.SpringBoot简介 1.1 原有Spring优缺点分析 1.1.1 Spring的优点分析 Spring是Java企业版(Java Enterprise Edition,JEE,也称J2EE ...

  3. Kotlin新语言简介和快速入门知识点

    Kotlin新语言简介和快速入门知识点 简介:Kotlin是最近由JetBrains发布的一种基于JVM的编程语言,已经被Google宣布为开发Android App的一级语言Kotlin有着与Jav ...

  4. Docker基础修炼1--Docker简介及快速入门体验

    本文作为Docker基础系列第一篇文章,将详细阐述和分析三个问题:Docker是什么?为什么要用Docker?如何快速掌握Docker技术? 本系列文章中Docker的用法演示是基于CentOS7进行 ...

  5. HTML常用标签简介及快速入门

    此HTML常用标签简介编写的目的,是给一个经常使用网页编辑器的一个朋友提供一个快速熟悉和入门HTML的途径. 现在分享出来,给其他有类似需求的朋友,此处只列出了编辑文章时最常用和遇到的标签,完整标签页 ...

  6. 终结篇:RemoteWebDriver与Grid简介-----Selenium快速入门(十五)

    Selenium的基本使用,已经介绍得差不多了,今天来简单说说RemoteWebDriver与Grid,也是本系列的最后一篇. 还记得本系列第一章(Selenium简介与环境搭配)的配置中,提到我们下 ...

  7. Spring Boot(一) 初步理解Spring Boot

    一.Spring Boot所解决的问题 Java开发十分笨重:繁多的配置.低下的开发效率.复杂的部署流程以头疼的第三方技术集成. Spring Boot的理念:习惯优于配置——项目中存在大量的配置,此 ...

  8. SpringBoot基础篇-SpringBoot快速入门

    SpringBoot基础 学习目标: 能够理解Spring的优缺点 能够理解SpringBoot的特点 能够理解SpringBoot的核心功能 能够搭建SpringBoot的环境 能够完成applic ...

  9. Springboot 完整搭建快速入门,必看!

    前言 手把手教你Springboot微服务项目搭建快速入门,通过本文学习Springboot的搭建快速入门,掌握微服务大致的配置服务,后续将会继续将核心组件引入到项目中,欢迎关注,点赞,转发. Spr ...

随机推荐

  1. Quick_sort

    typedef int ElementType; void Quick_sort(ElementType A[], int N) { Quicksort(A, , N-); } void Quicks ...

  2. Unity一键设置导入图片格式

    前几天由于项目原因,做了一个自动根据模型自动创建动画状态机,然后紧接着做了根据动画状态机和模型一键制作Prefab. 现在因为图片数量或者其它原因需要写一个一键设置图片格式的插件. 至于制作动画状态机 ...

  3. ZJOI2019一试游记

    ZJOI2019一试游记 Day -2 早上颓刀剑,中午赶动车,写一会儿作业,下午赶车到酒店,发现跟杭二的巨佬一个酒店qwq 本来想测试一下我在人群中大叫一声ljc1301 AK ZJOI2019会有 ...

  4. Javascript高级编程学习笔记(48)—— HTML5

    HTML变动最大的版本应该就是HTML5了,这里就介绍一些 HTML5新增的DOM相关的API 与类相关的扩充 HTML4在普及后有一个十分重要的变化,即class属性使用的场景越来越多 所以HTML ...

  5. 第73节:Java中的HTTPServletReauest和HTTPServletResponse

    第73节:Java中的HTTPServletReauest和HTTPServletResponse HTTP协议 客户端与服务器端通讯的一种规则. request: 请求行 请求头 请求体 respo ...

  6. 性能瓶颈之Session

    如果Source,Target和Mapping都不存在性能上的瓶颈,则问题可能会出在Session 以下问题可导致Session有性能上的瓶颈 1) 缓存小 2) 缓冲内存小 3) commit提交间 ...

  7. 数据库语句收藏(MySQL)

    概览 => MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性. =>关键字不区分大小写 => S ...

  8. maven发布jar包到nexus

    在编码过程中,有些通用的代码模块,有时候我们不想通过复制拷贝来粗暴地复用,因为这样不仅体现不了变化,也不利于统一管理.这里我们使用maven deploy的方式,将通用的模块打成jar包,发布到nex ...

  9. WebSocket(1)---WebSocket介绍

    WebSocket介绍   一.为什么需要 WebSocket? 初次接触 WebSocket 的人,都会问同样的问题:我们已经有了 HTTP 协议,为什么还需要另一个协议?它能带来什么好处? 答案很 ...

  10. rest-framework之权限组件

    权限 权限 作用 : 校验用户是否有权限访问 检测权限肯定是在用户认证通过之后,所有可以直接在request中取出用户做判断 先定义一个类,继承 BasePermission. from rest_f ...