Spring Boot從入門到精通之:1、Spring Boot簡介及快速入門

Spring Boot

Spring Boot 簡介java

Spring Boot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發過程。該框架使用了特定的方式來進行配置,從而使開發人員再也不須要定義樣板化的配置。經過這種方式,Boot致力於在蓬勃發展的快速應用開發領域(rapid application development)成爲領導者。程序員

Spring Boot特色web

  1. 建立獨立的Spring應用程序
  2. 嵌入的Tomcat,無需部署WAR文件
  3. 簡化Maven配置
  4. 自動配置Spring
  5. 提供生產就緒型功能,如指標,健康檢查和外部配置
  6. 絕對沒有代碼生成和對XML沒有要求配置

Spring Boot 主要目標是redis

  • 爲全部 Spring 的開發提供一個從根本上更快的入門體驗spring

  • 開箱即用,但經過本身設置參數,便可快速擺脫這種方式。mongodb

  • 提供了一些大型項目中常見的非功能性特性,如內嵌服務器、安全、指標,健康檢測、外部化配置等數據庫

  • 絕對沒有代碼生成,也無需 XML 配置。apache

應用的全局配置文件

能夠在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文件下配置:api

<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!";
    }
}
相關文章
相關標籤/搜索