摘要:學(xué)習(xí)日記簡(jiǎn)單的小程序配置引入依賴編寫代碼最后通過(guò)這兩個(gè)簡(jiǎn)單的配置,就可以使用瀏覽器訪問(wèn)訪問(wèn)到這個(gè)頁(yè)面了分析和主要的作用是告知渲染結(jié)果直接返回給調(diào)用者。數(shù)據(jù)相當(dāng)于就是在中作為路由功能的注解。
SpringBoot學(xué)習(xí)日記 簡(jiǎn)單的Hello Word小程序
配置pom引入依賴
org.springframework.boot spring-boot-starter-parent 1.5.9.RELEASE org.springframework.boot spring-boot-starter-web
編寫代碼
import org.springframework.boot.*; import org.springframework.boot.autoconfigure.*; import org.springframework.web.bind.annotation.*; @RestController @EnableAutoConfiguration public class Example { @RequestMapping("/") String home() { return "Hello World!"; } public static void main(String[] args) throws Exception { SpringApplication.run(Example.class, args); } }
最后通過(guò)這兩個(gè)簡(jiǎn)單的配置,就可以使用瀏覽器訪問(wèn)localhost:8080 訪問(wèn)到 hello word這個(gè)頁(yè)面了
分析
@RestController和@EnableAutoConfiguration、@RequestMapping
@RestController主要的作用是告知Spring渲染結(jié)果直接返回給調(diào)用者。==Json數(shù)據(jù)==
相當(dāng)于
@ Controller @ ResponseBody
@RequestMapping 就是在SpringMVC中作為路由功能的注解。
@EnableAutoConfiguration Spring Boot會(huì)通過(guò)pom.xml文件的依賴來(lái)自動(dòng)配置,由于Spring-boot-starter-web中配置了Tomcat和SpringMVC,自動(dòng)配置會(huì)配置為Web應(yīng)用。
SpringBoot熱部署:分析pom.xml 依賴的關(guān)系org.springframework.boot spring-boot-maven-plugin org.springframework springloaded 1.2.4.RELEASE repackage exec
依賴于下面: org.springframework.boot spring-boot-starter-parent 1.5.9.RELEASE org.springframework.boot spring-boot-dependencies 1.5.9.RELEASE ../../spring-boot-dependencies
管理SpringBoot所有依賴,==SpringBoot版本仲裁中心==
所以以后的導(dǎo)入依賴是不用寫具體版本號(hào)的。
導(dǎo)入的依賴:
org.springframework.boot spring-boot-starter-web
Spring-boot-starter-==web==:導(dǎo)入Web應(yīng)用的時(shí)候,導(dǎo)入Web需要用到的依賴。
Spring-boot-starter-x:Spring Boot的場(chǎng)景啟動(dòng)器(里面包含了多個(gè)整合好的依賴)。
SpringBoot將所有的功能場(chǎng)景都抽取出來(lái)做成Staters 只需要引入Staters就可以了
@SpringBootApplication:包含:
@Component:定義為一個(gè)組件可以被bean掃描器掃描出來(lái)
@ComponentScan:掃描被注解的對(duì)象。
@EnableAutoConfiguration:自動(dòng)配置,自動(dòng)導(dǎo)入
@Import(EnableAutoConfigurationImportSelector.class)
導(dǎo)入SpringBootApplication注解修飾類的包名里面的所有的子包全部導(dǎo)入。
EnableAutoConfigurationImportSelector 繼承于 AutoConfigurationImportSelector
@Override public String[] selectImports(AnnotationMetadata annotationMetadata) { Listconfigurations = getCandidateConfigurations(annotationMetadata, } /** 掃描META-INF/spring.factories中獲取EnableAutoConfiguration的值再包裝成Properties,從properties中獲取到EnableAutoConfiguration.class對(duì)應(yīng)的全限定名類名,添加進(jìn)入容器中。 */ protected List getCandidateConfigurations(AnnotationMetadata metadata, AnnotationAttributes attributes) { List configurations = SpringFactoriesLoader.loadFactoryNames( getSpringFactoriesLoaderFactoryClass(), getBeanClassLoader()); }
SpringFactoriesLoader.loadFactoryNames(EnableAutoConfiguration.calss ,classLoader);
獲取類路徑下META-INF/spring.factories中獲取EnableAutoConfiguration的值,再將這些值作為自動(dòng)配置類導(dǎo)入到容器中。
==結(jié)論==:@SpringBootApplication 被修飾的類為主配置類,將主配置類所在的包下的所有的子包里面的組件全部掃描到Spring容器中來(lái),再?gòu)母夸浵碌奈募凶x取配置文件生成配置類,自動(dòng)配置好。
JaveEE的整體整合和自動(dòng)配置都在:pring-boot-autoconfigure-1.5.9.RELEASE.jar中
Spring Initializer生成Boot項(xiàng)目的目錄:
static :保存靜態(tài)文件;js,css,png
templates : 保存模板頁(yè)面;(默認(rèn)不支持jsp,可以使用模板引擎)
application.properties : Spring Boot的配置文件,默認(rèn)配置文件可以在此文件中更改。
配置文件文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/77605.html
摘要:最近有項(xiàng)目需要使用語(yǔ)言開發(fā)數(shù)據(jù)接口,整體框架需要符合微服務(wù)架構(gòu),在網(wǎng)上查找了相關(guān)資料,最終選定了的架構(gòu),此文主要記錄在下的使用,一方面作為學(xué)習(xí)日記,另一方面也希望對(duì)正在學(xué)習(xí)的朋友們有一定幫助。最后,整個(gè)項(xiàng)目完成后目錄結(jié)構(gòu)如下 最近有項(xiàng)目需要使用java語(yǔ)言開發(fā)數(shù)據(jù)接口,整體框架需要符合微服務(wù)架構(gòu),在網(wǎng)上查找了相關(guān)資料,最終選定了Springcloud+Springboot的架構(gòu),此文...
摘要:關(guān)于的自動(dòng)配置,這個(gè)是重點(diǎn)之一,后面細(xì)說(shuō)。在后續(xù)的學(xué)習(xí)中會(huì)慢慢學(xué)習(xí)到。紅色標(biāo)記的就是已經(jīng)掃描到了并初始化成功了。 以下內(nèi)容,如有問(wèn)題,煩請(qǐng)指出,謝謝 springboot出來(lái)也很久了,以前零散地學(xué)習(xí)了不少,不過(guò)很長(zhǎng)時(shí)間了都沒(méi)有在實(shí)際中使用過(guò)了,忘了不少,因此要最近準(zhǔn)備抽時(shí)間系統(tǒng)的學(xué)習(xí)積累下springboot,給自己留個(gè)根。 因?yàn)橐郧皩W(xué)過(guò)一些,這里就主要根據(jù)官方文檔來(lái)學(xué)習(xí)了,可能會(huì)根據(jù)...
摘要:小時(shí)學(xué)會(huì)學(xué)習(xí)總結(jié)時(shí)間年月日星期六說(shuō)明本文部分內(nèi)容均來(lái)自慕課網(wǎng)。慕課網(wǎng)教學(xué)示例源碼暫無(wú)。數(shù)據(jù)庫(kù)操作下第六章事務(wù)管理事務(wù)管理只有查詢的時(shí)候不加事務(wù),其它任何操作都要加事務(wù)。第七章課程回顧課程回顧總結(jié)介紹安裝配置的使用數(shù)據(jù)庫(kù)操作 《2小時(shí)學(xué)會(huì)SpringBoot》學(xué)習(xí)總結(jié) 時(shí)間:2017年2月18日星期六說(shuō)明:本文部分內(nèi)容均來(lái)自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com教學(xué)示...
摘要:代碼如下可以看到中一共有個(gè)依賴,其中只有是我手動(dòng)加入的,用于單元測(cè)試。點(diǎn)擊項(xiàng)目啟動(dòng)按鈕,效果如下好的程序必須配備完善的單元測(cè)試。測(cè)試結(jié)果如下可以看到紅圈框住的地方,出現(xiàn)這個(gè)綠色標(biāo)志證明單元測(cè)試沒(méi)問(wèn)題。 微信公眾號(hào):一個(gè)優(yōu)秀的廢人如有問(wèn)題或建議,請(qǐng)后臺(tái)留言,我會(huì)盡力解決你的問(wèn)題。 前言 哎呦喂,按照以往的慣例今天周六我的安排應(yīng)該是待在家學(xué)學(xué)貓叫啥的。但是今年這種日子就可能一去不復(fù)返了,沒(méi)...
閱讀 2037·2021-09-13 10:23
閱讀 2375·2021-09-02 09:47
閱讀 3831·2021-08-16 11:01
閱讀 1252·2021-07-25 21:37
閱讀 1630·2019-08-30 15:56
閱讀 561·2019-08-30 13:52
閱讀 3154·2019-08-26 10:17
閱讀 2470·2019-08-23 18:17