前言:springboot由於其輕便和去配置化等的特性已經被廣泛應用,基於時代潮流以及不被鄙視,筆者於是開辟此篇開始認識springboot
前話
springboot是基於spring而開發的輕量級框架,所以在學習springboot之前,務必對spring的工作模式和源碼有一定的了解。筆者此處就不展開了,如果有興趣可直接戳以下鏈接閱讀即可
Spring源碼情操陶冶-ContextLoaderListener
springboot框架概覽

具體更多的信息,可參考spring官網#springboot。筆者此處對上述的配圖作下簡單的翻譯
springboot是什么
-
springboot讓用戶可以更為簡單的去創建獨立的、基於spring的應用程序並且運行簡單化。
-
springboot固執的認為通過spring平台和其他的第三方包就可以輕松的運行相應的程序。並且說明大部分的springboot應用只需要少部分的spring配置,也就是去配置化
springboot特點
-
創建獨立的Spring應用程序
-
直接內置Tomcat/Jetty/UnderTow等web容器(去war方式部署運行)
-
提供starter依賴以簡化用戶的構建配置
-
當需要的時候自動配置Spring和第三方依賴包
-
提供准生產特征,比如metrics(度量)、heath checks(健康檢查)、externalized configuration(外部化配置)
-
無代碼生成和無XML配置要求
springboot用法
筆者此處不分析springboot的相關用法,相關內容在官方的文檔上已經提的非常清楚,有興趣的直接戳鏈接前往閱讀。Spring Boot Reference
普通方式運行
jdk(1.8)/springboot(2.0.3.RELEASE)/spring(5.0.7.RELEASE)
maven配置
<?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.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>demo-springboot</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.3.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
啟動類
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DemoSpringbootApplication {
public static void main(String[] args) {
SpringApplication.run(DemoSpringbootApplication.class, args);
}
}
web方式運行
jdk(1.8)/springboot(2.0.3.RELEASE)/spring(5.0.7.RELEASE)
maven配置
<?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.example</groupId>
<artifactId>demo-springboot-web</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>demo-springboot-web</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.3.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
啟動類
package com.example.demospringbootweb;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DemoSpringbootWebApplication {
public static void main(String[] args) {
SpringApplication.run(DemoSpringbootWebApplication.class, args);
}
}
小結
筆者以此篇作為springboot的開篇,后續便對springboot的源碼作下簡單的分析,方便讀者和筆者知其所以然而了如其然
