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