雖然本篇講的是一個最簡的SpringBoot應用,可是要說明的是:學習SpringBoot是有門檻的,這個門檻就是,web
1:首先得有框架的基礎,好比SSM;spring
2:MAVEN基礎。apache
在學好上面二者的基礎上,咱們才能明白SpringBoot幹了一件什麼事情,以及它是怎麼幫咱們組織項目結構的。springboot
咱們假設你對於上面二者的知識都已經掌握,再開始對本文的學習。服務器
1.建立web項目app
而後一路next到finish。框架
等待Generating project in Batch mode完畢,最終生成的目錄爲:maven
2.配置pomide
而後加入parent,spring-boot-starter-parent。spring-boot
咱們在學習使用MAVEN來建立SSM的時候,已經知道parent的大體做用,就是定義一些屬性,這些屬性包括項目所依賴的大三方jar包。那麼在這裏就應該大體知道了,spring-boot-starter-parent裏面所定義的確定也是一些相似的東西。好比定義好了所依賴的spring的version是多少等等。
spring-boot-starter-parent自己也是有版本的,在這裏,咱們使用的是2.1.3.RELEASE這個版本,
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.3.RELEASE</version>
</parent>
加入後,在idea中會自動幫咱們到中央倉儲中下載jar包。若是是第一次操做,內容則有點大(以下圖達到了近600M),因而可知spring-boot-starter-parent的pom文件中會定義了多少依賴包,
除了spring-boot-starter-parent,因爲當前項目是web項目,故讓咱們再加入一個spring-boot-starter-web的依賴,最終,看到的pom文件以下:
<?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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<packaging>war</packaging>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.3.RELEASE</version>
</parent>
<name>testboot01</name>
<groupId>com.zuikc</groupId>
<artifactId>testboot01</artifactId>
<version>1.0-SNAPSHOT</version>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
</project>
在上面的pom中,細心的同窗應該還能發現有一個spring-boot-maven-plugin的插件,一會咱們在講到項目啓動的時候會說明這個插件。
3.測試代碼
測試代碼很是簡單,讓咱們建立一個HelloApplication,以下,
package com.zuikc;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@SpringBootApplication
@Configuration
@Controller
public class HelloApplication {
@RequestMapping("hello")
@ResponseBody
public String hello(){
return "hello zuikc.com!";
}
public static void main(String[] args) {
SpringApplication.run(HelloApplication.class, args);
}
}
接下來對代碼進行一個簡單的說明。這是一個最精簡的SpringBoot的項目,能夠看到代碼有若干註解,
@SpringBootApplication:是Spring Boot項目的核心註解,代表這是一個由springboot啓動的項目;
@Configuration:代表這是一個配置Spring的配置類。@Configuration由spring3.0開始被支持;
@Controller:代表這是一個SpringMVC的Controller控制器;
@RequestMapping咱們則已經很熟悉了,配置一個url地址,剩下的@ResponseBody則無需多說,各位都明白。
奇妙就在於main方法,這個HelloApplication帶main方法,就說明它能做爲一個應用程序自啓動。
事實上也確實如此!
讓咱們直接對代碼,run as application 就行!
能看到這樣的輸出,
這代表什麼?
這代表咱們執行main方法後,springboot爲咱們啓動了一個web服務器,可以爲咱們提供web服務!
而後,localhost吧……
4.測試代碼的maven啓動方式
除了run as application,因爲在pom文件中咱們配置了spring-boot-maven-plugin,因此咱們可使用maven的啓動方式,
緊接着啓動命令,能看到:
再localhost一下,看是否是很成功呢!
5.SpringBoot的優勢
想必至此,你們應該已經明白了SpringBoot的優勢。它讓咱們執行application同樣的來執行JavaWeb項目。而且,基礎0配置,就讓這個JavaWeb項目支持了Spring和SpringMVC,而往常,咱們每每要進行若干細緻的配置才行。
有經驗的同窗,應該也已經明白了這裏面的竅門,同時也知道這算不上多玄幻的技術。可是就是這奇思妙想,卻極大的提高了咱們這些開發人員的效率。
感謝關注「碼農星球」。本文版權屬於「碼農星球」。咱們提供諮詢和培訓服務,關於本文有任何困惑,請關注並聯系咱們。