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. Fiddler的配置

    增加监控请求的详情时间  //添加请求的响应时间 public static BindUIColumn("Time Taken")           function CalcT ...

  2. TDD:什么是桩(stub)和模拟(mock)?

    背景 本文假设你对TDD.Stub和Mock已经有了初步的认识,本文简单解释一下stub和mock的区别和使用场景,先看看他们之间的关系: 由上图可以知道mock框架可以非常容易的开发stub和moc ...

  3. 【Java】利用注解和反射实现一个"低配版"的依赖注入

    在Spring中,我们可以通过 @Autowired注解的方式为一个方法中注入参数,那么这种方法背后到底发生了什么呢,这篇文章将讲述如何用Java的注解和反射实现一个“低配版”的依赖注入. 下面是我们 ...

  4. 笔记:Zygote和SystemServer进程启动过程

    简述 Android设备启动过程中,先是Linux内核加载完,接着Android中的第一个进程init启动,它会启动一些需要开机启动的进程. Zygote就是进程init启动起来的.Android中所 ...

  5. Kali学习笔记38:文件上传漏洞

    早些年,提到Web渗透,或者搜索一些黑客教程 基本都会看到文件上传漏洞. 它是一个很经典的漏洞 但它本质其实不是一个漏洞,而是网站本身的上传文件功能 不过如果我们上传了Webshell,那么就成为了文 ...

  6. Kali学习笔记29:默认安装漏洞

    文章的格式也许不是很好看,也没有什么合理的顺序 完全是想到什么写一些什么,但各个方面都涵盖到了 能耐下心看的朋友欢迎一起学习,大牛和杠精们请绕道 默认安装漏洞: 早期Windows默认自动开启很多服务 ...

  7. (转)Python__slots__详解

    原文:https://www.cnblogs.com/rainfd/p/slots.html#top 摘要 当一个类需要创建大量实例时,可以通过__slots__声明实例所需要的属性, 例如,clas ...

  8. sql server 索引阐述系列五 索引参数与碎片

    -- 创建聚集索引 create table [dbo].[pub_stocktest] add constraint [pk_pub_stocktest] primary key clustered ...

  9. 我看C#的Equals()和GetHashCode()方法

    首先先谈一下Equals()这个方法: Equals()方法,来自于Object,是我们经常需要重写的方法.此方法的默认实现大概是这样的: public virtual bool Equals(obj ...

  10. lua中 table 重构index/pairs元方法优化table内存占用

    转载请标明出处http://www.cnblogs.com/zblade/ lua作为游戏的热更新首选的脚本,其优势不再过多的赘述.今天,我主要写一下如何重写lua中的元方法,通过自己的重写来实现对l ...