摘要:由于本人更習(xí)慣使用所以后續(xù)案例都是基于與,同時(shí)這里是基于最新的編寫的哦創(chuàng)建項(xiàng)目初次接觸,我們先來(lái)看看如何創(chuàng)建一個(gè)項(xiàng)目,這里以為例,其他的工具小伙伴們自行搜索創(chuàng)建方式。創(chuàng)建完項(xiàng)目后,各位小伙伴請(qǐng)認(rèn)真細(xì)心的對(duì)比下與傳統(tǒng)的工程有何區(qū)別如目錄結(jié)構(gòu)。
SpringBoot 是為了簡(jiǎn)化 Spring 應(yīng)用的創(chuàng)建、運(yùn)行、調(diào)試、部署等一系列問(wèn)題而誕生的產(chǎn)物,自動(dòng)裝配的特性讓我們可以更好的關(guān)注業(yè)務(wù)本身而不是外部的XML配置,我們只需遵循規(guī)范,引入相關(guān)的依賴就可以輕易的搭建出一個(gè) WEB 工程
未接觸 SpringBoot 之前,搭建一個(gè)普通的 WEB 工程往往需要花費(fèi)30分鐘左右,如果遇到點(diǎn)奇葩的問(wèn)題耽擱的時(shí)間會(huì)更長(zhǎng)一點(diǎn),但自從用了SpringBoot 后,真正體會(huì)到什么叫分分鐘搭建一個(gè)WEB,讓我擁有更多的時(shí)間跟我的小伙伴們嘮嗑了。使用 SpringBoot 后發(fā)現(xiàn)一切是如此的簡(jiǎn)單(還記得讀書那會(huì)被JAR包,xml支配的恐懼嗎,如今都可以說(shuō) good bye)
設(shè)計(jì)的目標(biāo)為所有使用 Spring 的開發(fā)者提供一個(gè)更簡(jiǎn)單,快速的入門體驗(yàn)
提供一些常見(jiàn)的功能、如監(jiān)控、WEB容器,健康,安全等功能
干掉XML,遵循規(guī)范,開箱即用
前提SpringBoot 為我們提供了一系列的依賴包,所以需要構(gòu)建工具的支持:Maven 或 Gradle。由于本人更習(xí)慣使用Maven所以后續(xù)案例都是基于Maven 與 IntelliJ IDEA,同時(shí)這里是基于最新的SpringBoot2編寫的哦...
創(chuàng)建項(xiàng)目初次接觸,我們先來(lái)看看如何創(chuàng)建一個(gè)Spring Boot項(xiàng)目,這里以IntelliJ IDEA為例,其他的IDE工具小伙伴們自行搜索創(chuàng)建方式。創(chuàng)建完項(xiàng)目后,各位小伙伴請(qǐng)認(rèn)真、細(xì)心的對(duì)比下與傳統(tǒng)的WEB工程有何區(qū)別(如:目錄結(jié)構(gòu))。
點(diǎn)擊File -> Project
如果用過(guò) Eclipse/IDEA 等工具的,對(duì)創(chuàng)建項(xiàng)目肯定不會(huì)陌生,但為了照顧第一次使用的我貼上了圖文
選擇Spring Initializr
到這一步選擇的時(shí)候,如圖中選項(xiàng)的是Spring Initializr(官方的構(gòu)建插件,需要聯(lián)網(wǎng)),第二個(gè)是自己選擇Maven構(gòu)建,為了更好的適合初學(xué)者,我們將在本章用插件構(gòu)建
填寫項(xiàng)目基本信息
Group: 組織ID,一般分為多個(gè)段,這里我只說(shuō)兩段,第一段為域,第二段為公司名稱。域又分為 org、com、cn等等,其中 org為非營(yíng)利組織,com為商業(yè)組織。如阿里、淘寶(com.alibaba/com.taobao)
Artifact: 唯一標(biāo)識(shí)符,一般是項(xiàng)目名稱
選擇包
Spring Initializr 為我們提供了很多的選項(xiàng),不同的選項(xiàng)有不同的作用,在初期我們只需要依賴Web -> Web 就可以了,選擇好依賴包之后點(diǎn)擊Next -> Finish
目錄結(jié)果- src -main -java -package #主函數(shù),啟動(dòng)類,運(yùn)行它如果運(yùn)行了 Tomcat、Jetty、Undertow 等容器 -SpringbootApplication -resouces #存放靜態(tài)資源 js/css/images 等 - statics #存放 html 模板文件 - templates #主要的配置文件,SpringBoot啟動(dòng)時(shí)候會(huì)自動(dòng)加載application.yml/application.properties - application.yml #測(cè)試文件存放目錄 -test # pom.xml 文件是Maven構(gòu)建的基礎(chǔ),里面包含了我們所依賴JAR和Plugin的信息 - pompom.xml 依賴
因?yàn)槭褂昧?Spring Initializr 插件,所以如下的配置都不需要我們自己去寫啦,需要注意的是版本要選擇 RELEASE ,穩(wěn)定版本BUG少
4.0.0 com.battcn chapter1 0.0.1-SNAPSHOT jar chapter1 我的用第一個(gè)SpringBoot工程 org.springframework.boot spring-boot-starter-parent 2.0.1.RELEASE UTF-8 UTF-8 1.8 org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-test test org.springframework.boot spring-boot-maven-plugin
其它的依賴可以參考:官方文檔
主函數(shù)入口注意事項(xiàng): 一個(gè)項(xiàng)目中切記不要出現(xiàn)多個(gè) main 函數(shù),否在在打包的時(shí)候 spring-boot-maven-plugin 將找不到主函數(shù)(主動(dòng)指定打包主函數(shù)入口除外...)
/** * 我的第一個(gè)SpringBoot程序 * 其中 @RestController 等同于 (@Controller 與 @ResponseBody) * * @author Levin */ @RestController @SpringBootApplication public class Chapter1Application { public static void main(String[] args) { SpringApplication.run(Chapter1Application.class, args); } @GetMapping("/demo1") public String demo1() { return "Hello battcn"; } @Bean public CommandLineRunner commandLineRunner(ApplicationContext ctx) { // 目的是 return args -> { System.out.println("來(lái)看看 SpringBoot 默認(rèn)為我們提供的 Bean:"); String[] beanNames = ctx.getBeanDefinitionNames(); Arrays.sort(beanNames); Arrays.stream(beanNames).forEach(System.out::println); }; } }初窺配置文件
從啟動(dòng)日志中可以發(fā)現(xiàn),SpringBoot 默認(rèn)的端口是 8080 ,那么如果端口被占用了怎么辦呢?不要慌,問(wèn)題不大,配置文件分分鐘解決你的困擾...
2018-04-20 16:14:46.725 INFO 11184 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ""
修改默認(rèn)配置
# 默認(rèn)的 8080 我們將它改成 9090 server.port=9090 # 未定義上下文路徑之前 地址是 http://localhost:8080 定義了后 http://localhost:9090 你能在tomcat做的事情,配置文件都可以 server.servlet.context-path=/chapter1
在啟動(dòng)一次看看日志
2018-04-20 16:47:05.716 INFO 12108 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 9090 (http) with context path "/chapter1"測(cè)試
本次測(cè)試采用 junit 進(jìn)行,當(dāng)然也可以啟動(dòng)項(xiàng)目后直接訪問(wèn) http://localhost:9090/chapter1/demo1 進(jìn)行測(cè)試
import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.boot.web.server.LocalServerPort; import org.springframework.http.ResponseEntity; import org.springframework.test.context.junit4.SpringRunner; import java.net.URL; import static org.junit.Assert.assertEquals; @RunWith(SpringRunner.class) @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) public class Chapter1ApplicationTests { @LocalServerPort private int port; private URL base; @Autowired private TestRestTemplate template; @Before public void setUp() throws Exception { // TODO 因?yàn)槲覀冃薷牧?content-path 所以請(qǐng)求后面要帶上 this.base = new URL("http://localhost:" + port + "/chapter1/demo1"); } @Test public void demo1() throws Exception { ResponseEntity拓展知識(shí) 自定義Bannerresponse = template.getForEntity(base.toString(), String.class); assertEquals(response.getBody(), "Hello battcn"); } }
SpringBoot 啟動(dòng)的時(shí)候我們可以看到如下內(nèi)容,這一塊其實(shí)是可以自定義的哦,而且在 2.X 版本中,它支持的格式從文本擴(kuò)展到banner.txt、banner.jpg、banner.gif、banner.jpeg 等等,只需要在 resouces 目錄下添加指定命名的文件即可
. ____ _ __ _ _ / / ___"_ __ _ _(_)_ __ __ _ ( ( )\___ | "_ | "_| | "_ / _` | / ___)| |_)| | | | | || (_| | ) ) ) ) " |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.0.1.RELEASE)總結(jié)
目前很多大佬都寫過(guò)關(guān)于 SpringBoot 的教程了,如有雷同,請(qǐng)多多包涵,本教程基于最新的 spring-boot-starter-parent:2.0.1.RELEASE編寫,包括新版本的特性都會(huì)一起介紹...
說(shuō)點(diǎn)什么個(gè)人QQ:1837307557
battcn開源群(適合新手):391619659
微信公眾號(hào)(歡迎調(diào)戲):battcn
個(gè)人博客:http://blog.battcn.com/
全文代碼:https://github.com/battcn/spring-boot2-learning/tree/master/chapter1
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/71338.html
摘要:它使用約定大于配置的理念讓你的項(xiàng)目快速運(yùn)行起來(lái)。如何使用構(gòu)建工程第一步,當(dāng)然是安裝傻瓜式教程,請(qǐng)自行百度。包名,填完和后自動(dòng)生成,默認(rèn)即可。確認(rèn)無(wú)誤,點(diǎn)完成創(chuàng)建即可。 微信公眾號(hào):一個(gè)優(yōu)秀的廢人如有問(wèn)題或建議,請(qǐng)后臺(tái)留言,我會(huì)盡力解決你的問(wèn)題。 前言 新年立了個(gè) flag,好好運(yùn)營(yíng)這個(gè)公眾號(hào)。具體來(lái)說(shuō),就是每周要寫兩篇文章在這個(gè)號(hào)發(fā)表。剛立的 flag 可不能這么快打臉。下面送上本周第...
摘要:簡(jiǎn)介它的設(shè)計(jì)目的就是為例簡(jiǎn)化開發(fā),開啟了各種自動(dòng)裝配,你不想寫各種配置文件,引入相關(guān)的依賴就能迅速搭建起一個(gè)工程。它采用的是建立生產(chǎn)就緒的應(yīng)用程序觀點(diǎn),優(yōu)先于配置的慣例。另,本系列教程全部用的作為開發(fā)工具。 簡(jiǎn)介 spring boot 它的設(shè)計(jì)目的就是為例簡(jiǎn)化開發(fā),開啟了各種自動(dòng)裝配,你不想寫各種配置文件,引入相關(guān)的依賴就能迅速搭建起一個(gè)web工程。它采用的是建立生產(chǎn)就緒的應(yīng)用程序觀...
摘要:下載地址百度谷歌一大堆以下介紹如何使用自帶的下載下載請(qǐng)選擇版本創(chuàng)建一個(gè)項(xiàng)目輸入輸入輸入修改為如下將自動(dòng)下載以及相關(guān)依賴包至此工程已經(jīng)搭建完畢,下一篇將是一個(gè) (why)為什么springboot火遍全世界 springboot 有個(gè)好爹spring springboot 遺傳了爹的優(yōu)秀基因而生 大神們都在講服務(wù)化(service),springboot做服務(wù)化再合適不過(guò)了 sprin...
摘要:但是這種手寫文檔帶來(lái)的弊端就是維護(hù)起來(lái)苦不堪言,對(duì)于接口容易發(fā)生變化的開發(fā)者來(lái)說(shuō),維護(hù)文檔就是噩夢(mèng)好在現(xiàn)如今市場(chǎng)上書寫文檔的工具有很多,常見(jiàn)的有阿里的但是能稱之為框架的,估計(jì)也只有了。 SpringBoot 是為了簡(jiǎn)化 Spring 應(yīng)用的創(chuàng)建、運(yùn)行、調(diào)試、部署等一系列問(wèn)題而誕生的產(chǎn)物,自動(dòng)裝配的特性讓我們可以更好的關(guān)注業(yè)務(wù)本身而不是外部的XML配置,我們只需遵循規(guī)范,引入相關(guān)的依賴...
摘要:如何測(cè)試進(jìn)入到項(xiàng)目目錄,此處以我本地目錄為主然后打開程序,不會(huì)在當(dāng)前目錄打開的請(qǐng)自行百度,輸入打包完畢后進(jìn)入到目錄中去,我們可以發(fā)現(xiàn)一個(gè)名為的包接著在打開程序,輸入。 SpringBoot 是為了簡(jiǎn)化 Spring 應(yīng)用的創(chuàng)建、運(yùn)行、調(diào)試、部署等一系列問(wèn)題而誕生的產(chǎn)物,自動(dòng)裝配的特性讓我們可以更好的關(guān)注業(yè)務(wù)本身而不是外部的XML配置,我們只需遵循規(guī)范,引入相關(guān)的依賴就可以輕易的搭建出...
閱讀 3268·2021-10-27 14:20
閱讀 2536·2021-10-08 10:05
閱讀 1635·2021-09-09 09:33
閱讀 2908·2019-08-30 13:16
閱讀 1445·2019-08-29 18:34
閱讀 1180·2019-08-29 10:58
閱讀 1233·2019-08-28 18:22
閱讀 1231·2019-08-26 13:33