小編給大家分享一下SpringBoot怎么用,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
目前創(chuàng)新互聯(lián)建站已為上千余家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)站空間、網(wǎng)站托管、服務(wù)器租用、企業(yè)網(wǎng)站設(shè)計、臨高網(wǎng)站維護(hù)等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
SpringBoot是什么?
SpringBoot是spring家族中微型框架,其設(shè)計目的是用來簡化新Spring應(yīng)用的初始搭建以及開發(fā)過程。
Spring Boot可以輕松創(chuàng)建獨立的,生產(chǎn)級的基于Spring的應(yīng)用程序,您可以“運行”。
特征:
創(chuàng)建獨立的Spring應(yīng)用程序
直接嵌入Tomcat,Jetty或Undertow(無需部署WAR文件)
提供自以為是的“入門”依賴項以簡化構(gòu)建配置
盡可能自動配置Spring和第三方庫
提供生產(chǎn)就緒功能,例如指標(biāo),運行狀況檢查和外部化配置
絕對沒有代碼生成,也不需要XML配置
SpringBoot要解決的問題?
隨著Java語言的慢慢發(fā)展,Java的開發(fā)顯得格外的笨重,繁多的配置,低下的開發(fā)效率,復(fù)雜的部署流程以及第三方技術(shù)集成難度非常大而且雜。
在上述環(huán)境中,SpringBoot營運而生,它使用“習(xí)慣由于配置”的理念讓你的項目快速的運行起來,使用SpringBoot很容易創(chuàng)建一個獨立運行。它內(nèi)置Tomcat,Servlet,Spring等等基本開發(fā)的功能。
SpringBoot的優(yōu)勢?
快速構(gòu)建項目,敏捷式開發(fā)
項目可獨立運行,無須外部依賴Servlet容器。
對主流框架無配置支持,簡化開發(fā),也可以修改默認(rèn)值。
提供運行時的應(yīng)用監(jiān)控。極大的提高了開發(fā)、部署效率。
與spring cloud天然集成。
限制:將現(xiàn)有或傳統(tǒng)的Spring Framework項目轉(zhuǎn)換為Spring Boot應(yīng)用程序是一個非常困難和耗時的過程。它僅適用于全新Spring項目。
什么是微服務(wù)?
首先微服務(wù)并沒有一個官方的定義,想要直接描述微服務(wù)比較困難。
它是一種“軟件的架構(gòu)風(fēng)格”,一個應(yīng)用應(yīng)該是一組小型服務(wù)。各個小型服務(wù)運行在各自的環(huán)境中,通過http的方式進(jìn)行互通。
微服務(wù)化的核心就是將傳統(tǒng)的一站式應(yīng)用,根據(jù)業(yè)務(wù)拆分成一個一個的服務(wù),徹底地去耦合,每一個微服務(wù)提供單個業(yè)務(wù)功能的服務(wù),一個服務(wù)做一件事,從技術(shù)角度看就是一種小而獨立的處理過程,類似進(jìn)程概念,能夠自行單獨啟動或銷毀,擁有自己獨立的數(shù)據(jù)庫
每一個功能元素都是一個可以獨立替換和可獨立升級的軟件單元。它的好處是就是可以任意組合。極大的增強了軟甲架構(gòu)的靈活性。
開啟SpringBoot第一個項目
環(huán)境準(zhǔn)備:
Jdk8.0以上。
Maven3.x以上,需要設(shè)置jdk8的運行環(huán)境。
開發(fā)工具:sts、idea。
快速啟動一個SpringBoot項目:
使用idea首先
填寫坐標(biāo):
在這里可以根據(jù)自己需要的什么功能選擇什么啟動器,我這里就單選一個Web模塊。
創(chuàng)建完成后目錄:
他會默認(rèn)幫我們生成一個主程序類,我們可以直接通過主程序入口啟動SpringBoot
默認(rèn)在resources模板下面會生成一下幾個目錄和文件。
static:主要用來保存所有的靜態(tài)資源,包括js,css,image等。
templates:保存所有的模板頁面。SpringBoot默認(rèn)以jar包的方式來部署項目,所以默認(rèn)是不支持jsp頁面的,但是可以使用模板引擎(freemarker,thymeleaf)。
application.properties:Spring Boot默認(rèn)的配置文件。默認(rèn)情況下SpringBoot是不需要配置文件的,但是可以通過這個類修改默認(rèn)值。比如修改端口號。
application.properties或者application.yml將會是核心的配置文件。
在SpringBoot中,必須繼承spring-boot-starter-parent這個包,這個是SpringBoot的默認(rèn)配置信息,極大的提高了我們的開發(fā)效率。
/** * Author: SimpleWu * date: 2018/11/27 */ //@RestController @Controller public class HelloController { @ResponseBody @RequestMapping(value = "hello") public String hello(){ return "SpringBoot ------- hello"; } }
運行方式:
1.直接使用Idea運行主程序
2.使用maven命令打成jar包在控制臺使用 java -jar **.jar來運行。不需要另外安裝tomcat等其他工具,極大的簡化了部署流程。
注意事項:
在SpringBoot中,我們只需要使用@SpringBottApplication注解修飾入口方法類,然后運行main方法就可以啟動Springboot,非常方便。
注意:如果去掉@SpringBootApplication注解,則會運行錯誤。
我們主程序SpringbootHellowroldApplication.java是在package com.simple.springboot;下
默認(rèn)它只會掃描到同包或者子包下。
SpringBoot啟動器
在SpringBoot中,有一個非常重要的概念,就叫“場景啟動器”,它幫助我們導(dǎo)入對應(yīng)模塊正常運行所依賴的組件。SpringBoot將所有的功能場景都抽取出來,做成一個個的Starters(啟動器),只需要在項目中引入這些starter相關(guān)場景的所依賴的環(huán)境都會導(dǎo)入進(jìn)來。要什么功能就導(dǎo)入什么樣的啟動器。
@SpringBootApplication
SpringBoot應(yīng)用標(biāo)注在某個類上說明這個類是SpringBoot的主配置類,SpringBoot就應(yīng)該運行這個類的main方法來啟動SpringBoot應(yīng)用。
該注解其實是一個組合注解,其中包含了一些其它的注解。
@Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited @SpringBootConfiguration @EnableAutoConfiguration @ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class), @Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) }) public @interface SpringBootApplication {
@SpringBootConfiguration翻譯下就是SpringBoot配置繼承自@Configuration,二者功能也一致,標(biāo)注當(dāng)前類是配置類,
并會將當(dāng)前類內(nèi)聲明的一個或多個以@Bean注解標(biāo)記的方法的實例納入到spring容器中,并且實例名就是方法名
@EnableAutoConfiguration:翻一下就是開啟自動配置的意思,開啟自動配置功能。以前我們需要配置的東西,現(xiàn)在我們都不需要配置了,SpringBoot幫我們自動配置了。注解中又包含了兩個比較重要:
@AutoConfigurationPackage:自動配置包,通過@Import(AutoConfigurationPackages.Registrar.class)類來指定對應(yīng)的包。默認(rèn)是將@SpringBootApplication所在的包以及該包下的所有子包導(dǎo)入到容器中。
@Import(AutoConfigurationImportSelector.class):導(dǎo)入哪些組件的選擇器。將所有需要導(dǎo)入的組件以全類名的方式返回,這些組件將會返回給一個List configurations集合中,這些類是各種組件的自動配置文件,然后被添加到容器中。
SpringBoot自動配置
SpringBoot中最核心的功能就是自動配置類,在SpringBoot中會加載大量的自動配置類。
我們可以查看我們需要的功能有沒有SpringBoot默認(rèn)寫好的自動配置類。如果有就不需要配置了,如果沒有,可以根據(jù)對應(yīng)的XxxProperties類查看相關(guān)的屬性
然后再配置文件對修改對應(yīng)的屬性值即可。
以@Conditional開頭的表示的是條件類。以Properties結(jié)尾的表示的是對應(yīng)的屬性類。
我們通過SpringBoot會加載大量的AutoConfiguration配置類,其中對應(yīng)相關(guān)組件的配置信息。
該類是通過全注解方式來配置相關(guān)的屬性。
在這個配置類中,我們也可以看到一些@Conditional開頭和以Properties結(jié)尾的類。
Conditional擴展:
在SpringBoot自動配置類中存在大量的@Conditional開頭的注解,這些注解的作用是當(dāng)滿足某些條件時,該注解才會生效。
雖然默認(rèn)情況下加載了非常多的自動配置類文件,但是由于Conditional的限制,并不會加載所有的配置類。可以通過在application.properties文件中設(shè)置debug=true打開SpringBoot的日志信息來查看加載了哪些自動配置類。
@Conditional擴展注解 | 作用(判斷是否滿足當(dāng)前指定條件) |
---|---|
@ConditionalOnJava | 系統(tǒng)的java版本是否符合要求 |
@ConditionalOnBean | 容器中存在指定Bean; |
@ConditionalOnMissingBean | 容器中不存在指定Bean; |
@ConditionalOnExpression | 滿足SpEL表達(dá)式指定 |
@ConditionalOnClass | 系統(tǒng)中有指定的類 |
@ConditionalOnMissingClass | 系統(tǒng)中沒有指定的類 |
@ConditionalOnSingleCandidate | 容器中只有一個指定的Bean,或者這個Bean是首選Bean |
@ConditionalOnProperty | 系統(tǒng)中指定的屬性是否有指定的值 |
@ConditionalOnResource | 類路徑下是否存在指定資源文件 |
@ConditionalOnWebApplication | 當(dāng)前是web環(huán)境 |
@ConditionalOnNotWebApplication | 當(dāng)前不是web環(huán)境 |
@ConditionalOnJndi | JNDI存在指定項 |
總結(jié):
SpringBoot是一個微服務(wù)框架,延續(xù)了spring框架的核心思想IOC和AOP,簡化了應(yīng)用的開發(fā)和部署。
SpringBoot 并不是用來替代 spring的解決方案,而是和 spring框架緊密結(jié)合用于提升 spring開發(fā)者體驗的工具。
看完了這篇文章,相信你對“SpringBoot怎么用”有了一定的了解,如果想了解更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
網(wǎng)頁標(biāo)題:SpringBoot怎么用
本文地址:http://jinyejixie.com/article22/ijjijc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、ChatGPT、定制網(wǎng)站、商城網(wǎng)站、域名注冊、網(wǎng)站設(shè)計
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)