5分鐘構(gòu)建一個(gè)應(yīng)用晃琳?沒錯(cuò)!一點(diǎn)沒有夸張琐鲁,甚至不用5分鐘就可以快速搭建并啟動(dòng)一個(gè)應(yīng)用卫旱。
環(huán)境配置
1、JDK版本:Java8
2围段、IDE版本:Intellij IDEA 2018.1
3顾翼、系統(tǒng):MAC OS
構(gòu)建步驟
1、創(chuàng)建項(xiàng)目
打開Intellij IDEA奈泪,點(diǎn)擊File->New->Project
選擇“Spring Initializer”适贸,點(diǎn)擊next
這步可以直接next,也可以填寫自己需要的信息涝桅,然后next
無腦next
點(diǎn)擊Finish拜姿,完成項(xiàng)目構(gòu)建,生成初始項(xiàng)目及項(xiàng)目結(jié)構(gòu)如下
maven文件
<pre style="margin: 0.5em 0px; padding: 0.4em 0.6em; border-radius: 8px; background: rgb(255, 255, 255); color: rgb(0, 0, 0); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; font-family: Menlo; font-size: 9pt;"><?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.spring.boot</groupId>
<artifactId>tutorial</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>tutorial</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.4.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>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
</pre>
注意:
自動(dòng)生成的起步依賴冯遂,如spring-boot-starter蕊肥、spring-boot-starter-test和spring-boot-starter-web。點(diǎn)擊進(jìn)入起步依賴spring-boot-starter蛤肌,發(fā)現(xiàn)其依賴了spring-core等壁却。spring-boot-starter-test依賴了junit、spring-test等裸准,而spring-boot-starter-web則包括啟動(dòng)web應(yīng)用所需要的依賴展东,比如spring-boot-starter-tomcat、spring-webmvc等(從這些實(shí)現(xiàn)細(xì)節(jié)可以看出Spring Boot是為了方便日常開發(fā)做了針對(duì)性抽象和封裝炒俱,底層用的還是你熟悉的Spring)
build內(nèi)容是聲明部署插件琅锻,該pom定義該項(xiàng)目是以jar方式運(yùn)行卦停,其實(shí)也是可以通過war包方式運(yùn)行的
TutorialApplication
該類是Spring Boot的核心注解,項(xiàng)目的啟動(dòng)入口恼蓬。
<pre style="margin: 0.5em 0px; padding: 0.4em 0.6em; border-radius: 8px; background: rgb(255, 255, 255); color: rgb(0, 0, 0); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; font-family: Menlo; font-size: 9pt;">import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication public class TutorialApplication {
public static void main(String[] args) {
SpringApplication.run(TutorialApplication.class, args);
}
}
</pre>
注意:
點(diǎn)擊進(jìn)入注解SpringBootApplication惊完,你會(huì)發(fā)現(xiàn),其本質(zhì)是一個(gè)組合注解处硬,包括@SpringBootConfiguration小槐、@EnableAutoConfiguration和@ComponentScan等注解。具體各個(gè)注解類的作用后面有機(jī)會(huì)再說
Spring Boot項(xiàng)目啟動(dòng)是通過執(zhí)行SpringApplication的靜態(tài)方法run啟動(dòng)項(xiàng)目荷辕,該方法底層是初始化上下文并啟動(dòng)容器凿跳。
其他文件
TutorialApplicationTests文件和appication.properties文件都是空殼,可以按照需要實(shí)現(xiàn)疮方。
2控嗜、啟動(dòng)項(xiàng)目
在TutorialApplication類上右鍵Run 'TutorialApplication'即可啟動(dòng)應(yīng)用
添加Controller類
如果你覺得上面的效果太空洞了,需要驗(yàn)證骡显,那么可以新建一個(gè)HelloController類
<pre style="margin: 0.5em 0px; padding: 0.4em 0.6em; border-radius: 8px; background: rgb(255, 255, 255); color: rgb(0, 0, 0); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; font-family: Menlo; font-size: 9pt;">package com.spring.boot.tutorial.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController @RequestMapping("/")
public class HelloController {
@GetMapping(value = "/index")
public String index() {
return "hello jackie";
}
}
</pre>
此時(shí)重新運(yùn)行TutorialApplication疆栏,打開瀏覽器,輸入localhost:8080/index惫谤,效果如下
一點(diǎn)思考
從J2EE到SSH壁顶,從SSH到Spring Boot,我們發(fā)現(xiàn)工具框架越來越好用了溜歪,生產(chǎn)力提高了若专。相比過去,一個(gè)單位時(shí)間能搬更多的磚了蝴猪。
有了Java Configuration调衰,我們可以告別讓人眼花繚亂的XML配置方式了。
有了spring-boot-starter*這種起步依賴方式自阱,Spring開發(fā)的那些大牛仿佛是你肚子里的蛔蟲嚎莉,把你想要的甚至還沒有想清楚的都清晰的整合并塞到你的面前,不用再寫那些重復(fù)性的配置动壤,如spring-core萝喘,junit等等幾乎每個(gè)項(xiàng)目都需要的配置
有了yaml這種文件格式(本文沒有提及)淮逻,借助約定大于配置的魅力琼懊,讓你只寫必須要寫的代碼,沒有一丁點(diǎn)的冗余和浪費(fèi)
Spring Boot雖然切切實(shí)實(shí)的提高了開發(fā)效率爬早,但開發(fā)者卻越來越像個(gè)傻子哼丈,就像我這篇5分鐘教程一般,節(jié)省了大量搭建項(xiàng)目的時(shí)間筛严,同時(shí)也讓很多的實(shí)現(xiàn)細(xì)節(jié)成為了黑箱醉旦。
簡(jiǎn)單易用的工具和框架值得推薦,但是如果不想做一個(gè)無腦的搬運(yùn)工,還是需要多關(guān)注底層時(shí)間车胡。