最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot新手入門的快速教程

 更新時(shí)間:2019年12月29日 10:21:09   作者:SimpleWu  
這篇文章主要給大家介紹了關(guān)于SpringBoot新手入門的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用SpringBoot具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧

SpringBoot是什么?

SpringBoot是spring家族中微型框架,其設(shè)計(jì)目的是用來簡化新Spring應(yīng)用的初始搭建以及開發(fā)過程。

Spring Boot可以輕松創(chuàng)建獨(dú)立的,生產(chǎn)級(jí)的基于Spring的應(yīng)用程序,您可以“運(yùn)行”。

特征:

  • 創(chuàng)建獨(dú)立的Spring應(yīng)用程序
  • 直接嵌入Tomcat,Jetty或Undertow(無需部署WAR文件)
  • 提供自以為是的“入門”依賴項(xiàng)以簡化構(gòu)建配置
  • 盡可能自動(dòng)配置Spring和第三方庫
  • 提供生產(chǎn)就緒功能,例如指標(biāo),運(yùn)行狀況檢查和外部化配置
  • 絕對(duì)沒有代碼生成,也不需要XML配置

SpringBoot要解決的問題?

隨著Java語言的慢慢發(fā)展,Java的開發(fā)顯得格外的笨重,繁多的配置,低下的開發(fā)效率,復(fù)雜的部署流程以及第三方技術(shù)集成難度非常大而且雜。

在上述環(huán)境中,SpringBoot營運(yùn)而生,它使用“習(xí)慣由于配置”的理念讓你的項(xiàng)目快速的運(yùn)行起來,使用SpringBoot很容易創(chuàng)建一個(gè)獨(dú)立運(yùn)行。它內(nèi)置Tomcat,Servlet,Spring等等基本開發(fā)的功能。

SpringBoot的優(yōu)勢(shì)?

快速構(gòu)建項(xiàng)目,敏捷式開發(fā)

項(xiàng)目可獨(dú)立運(yùn)行,無須外部依賴Servlet容器。

對(duì)主流框架無配置支持,簡化開發(fā),也可以修改默認(rèn)值。

提供運(yùn)行時(shí)的應(yīng)用監(jiān)控。極大的提高了開發(fā)、部署效率。

與spring cloud天然集成。

限制:將現(xiàn)有或傳統(tǒng)的Spring Framework項(xiàng)目轉(zhuǎn)換為Spring Boot應(yīng)用程序是一個(gè)非常困難和耗時(shí)的過程。它僅適用于全新Spring項(xiàng)目。

什么是微服務(wù)?

首先微服務(wù)并沒有一個(gè)官方的定義,想要直接描述微服務(wù)比較困難。

它是一種“軟件的架構(gòu)風(fēng)格”,一個(gè)應(yīng)用應(yīng)該是一組小型服務(wù)。各個(gè)小型服務(wù)運(yùn)行在各自的環(huán)境中,通過http的方式進(jìn)行互通。

微服務(wù)化的核心就是將傳統(tǒng)的一站式應(yīng)用,根據(jù)業(yè)務(wù)拆分成一個(gè)一個(gè)的服務(wù),徹底地去耦合,每一個(gè)微服務(wù)提供單個(gè)業(yè)務(wù)功能的服務(wù),一個(gè)服務(wù)做一件事,從技術(shù)角度看就是一種小而獨(dú)立的處理過程,類似進(jìn)程概念,能夠自行單獨(dú)啟動(dòng)或銷毀,擁有自己獨(dú)立的數(shù)據(jù)庫

每一個(gè)功能元素都是一個(gè)可以獨(dú)立替換和可獨(dú)立升級(jí)的軟件單元。它的好處是就是可以任意組合。極大的增強(qiáng)了軟甲架構(gòu)的靈活性。

開啟SpringBoot第一個(gè)項(xiàng)目

環(huán)境準(zhǔn)備:

  • Jdk8.0以上。
  • Maven3.x以上,需要設(shè)置jdk8的運(yùn)行環(huán)境。
  • 開發(fā)工具:sts、idea。

快速啟動(dòng)一個(gè)SpringBoot項(xiàng)目:

使用idea首先

填寫坐標(biāo):

在這里可以根據(jù)自己需要的什么功能選擇什么啟動(dòng)器,我這里就單選一個(gè)Web模塊。

創(chuàng)建完成后目錄:

他會(huì)默認(rèn)幫我們生成一個(gè)主程序類,我們可以直接通過主程序入口啟動(dòng)SpringBoot

默認(rèn)在resources模板下面會(huì)生成一下幾個(gè)目錄和文件。

static:主要用來保存所有的靜態(tài)資源,包括js,css,image等。

templates:保存所有的模板頁面。SpringBoot默認(rèn)以jar包的方式來部署項(xiàng)目,所以默認(rèn)是不支持jsp頁面的,但是可以使用模板引擎(freemarker,thymeleaf)。

application.properties:Spring Boot默認(rèn)的配置文件。默認(rèn)情況下SpringBoot是不需要配置文件的,但是可以通過這個(gè)類修改默認(rèn)值。比如修改端口號(hào)。

application.properties或者application.yml將會(huì)是核心的配置文件。

在SpringBoot中,必須繼承spring-boot-starter-parent這個(gè)包,這個(gè)是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";
 }
}

運(yùn)行方式:

1.直接使用Idea運(yùn)行主程序

2.使用maven命令打成jar包在控制臺(tái)使用 java -jar **.jar來運(yùn)行。不需要另外安裝tomcat等其他工具,極大的簡化了部署流程。

注意事項(xiàng):

在SpringBoot中,我們只需要使用@SpringBottApplication注解修飾入口方法類,然后運(yùn)行main方法就可以啟動(dòng)Springboot,非常方便。

注意:如果去掉@SpringBootApplication注解,則會(huì)運(yùn)行錯(cuò)誤。

我們主程序SpringbootHellowroldApplication.java是在package com.simple.springboot;下

默認(rèn)它只會(huì)掃描到同包或者子包下。

SpringBoot啟動(dòng)器

在SpringBoot中,有一個(gè)非常重要的概念,就叫“場景啟動(dòng)器”,它幫助我們導(dǎo)入對(duì)應(yīng)模塊正常運(yùn)行所依賴的組件。SpringBoot將所有的功能場景都抽取出來,做成一個(gè)個(gè)的Starters(啟動(dòng)器),只需要在項(xiàng)目中引入這些starter相關(guān)場景的所依賴的環(huán)境都會(huì)導(dǎo)入進(jìn)來。要什么功能就導(dǎo)入什么樣的啟動(dòng)器。

@SpringBootApplication

SpringBoot應(yīng)用標(biāo)注在某個(gè)類上說明這個(gè)類是SpringBoot的主配置類,SpringBoot就應(yīng)該運(yùn)行這個(gè)類的main方法來啟動(dòng)SpringBoot應(yīng)用。

該注解其實(shí)是一個(gè)組合注解,其中包含了一些其它的注解。

@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)前類是配置類,
并會(huì)將當(dāng)前類內(nèi)聲明的一個(gè)或多個(gè)以@Bean注解標(biāo)記的方法的實(shí)例納入到spring容器中,并且實(shí)例名就是方法名

@EnableAutoConfiguration:翻一下就是開啟自動(dòng)配置的意思,開啟自動(dòng)配置功能。以前我們需要配置的東西,現(xiàn)在我們都不需要配置了,SpringBoot幫我們自動(dòng)配置了。注解中又包含了兩個(gè)比較重要:

  • @AutoConfigurationPackage:自動(dòng)配置包,通過@Import(AutoConfigurationPackages.Registrar.class)類來指定對(duì)應(yīng)的包。默認(rèn)是將@SpringBootApplication所在的包以及該包下的所有子包導(dǎo)入到容器中。
  • @Import(AutoConfigurationImportSelector.class):導(dǎo)入哪些組件的選擇器。將所有需要導(dǎo)入的組件以全類名的方式返回,這些組件將會(huì)返回給一個(gè)List configurations集合中,這些類是各種組件的自動(dòng)配置文件,然后被添加到容器中。

SpringBoot自動(dòng)配置

SpringBoot中最核心的功能就是自動(dòng)配置類,在SpringBoot中會(huì)加載大量的自動(dòng)配置類。

我們可以查看我們需要的功能有沒有SpringBoot默認(rèn)寫好的自動(dòng)配置類。如果有就不需要配置了,如果沒有,可以根據(jù)對(duì)應(yīng)的XxxProperties類查看相關(guān)的屬性

然后再配置文件對(duì)修改對(duì)應(yīng)的屬性值即可。

以@Conditional開頭的表示的是條件類。以Properties結(jié)尾的表示的是對(duì)應(yīng)的屬性類。

我們通過SpringBoot會(huì)加載大量的AutoConfiguration配置類,其中對(duì)應(yīng)相關(guān)組件的配置信息。

該類是通過全注解方式來配置相關(guān)的屬性。

在這個(gè)配置類中,我們也可以看到一些@Conditional開頭和以Properties結(jié)尾的類。

Conditional擴(kuò)展:

在SpringBoot自動(dòng)配置類中存在大量的@Conditional開頭的注解,這些注解的作用是當(dāng)滿足某些條件時(shí),該注解才會(huì)生效。

雖然默認(rèn)情況下加載了非常多的自動(dòng)配置類文件,但是由于Conditional的限制,并不會(huì)加載所有的配置類??梢酝ㄟ^在application.properties文件中設(shè)置debug=true打開SpringBoot的日志信息來查看加載了哪些自動(dòng)配置類。

@Conditional擴(kuò)展注解 作用(判斷是否滿足當(dāng)前指定條件)
@ConditionalOnJava 系統(tǒng)的java版本是否符合要求
@ConditionalOnBean 容器中存在指定Bean;
@ConditionalOnMissingBean 容器中不存在指定Bean;
@ConditionalOnExpression 滿足SpEL表達(dá)式指定
@ConditionalOnClass 系統(tǒng)中有指定的類
@ConditionalOnMissingClass 系統(tǒng)中沒有指定的類
@ConditionalOnSingleCandidate 容器中只有一個(gè)指定的Bean,或者這個(gè)Bean是首選Bean
@ConditionalOnProperty 系統(tǒng)中指定的屬性是否有指定的值
@ConditionalOnResource 類路徑下是否存在指定資源文件
@ConditionalOnWebApplication 當(dāng)前是web環(huán)境
@ConditionalOnNotWebApplication 當(dāng)前不是web環(huán)境
@ConditionalOnJndi JNDI存在指定項(xiàng)

總結(jié):

SpringBoot是一個(gè)微服務(wù)框架,延續(xù)了spring框架的核心思想IOC和AOP,簡化了應(yīng)用的開發(fā)和部署。

SpringBoot 并不是用來替代 spring的解決方案,而是和 spring框架緊密結(jié)合用于提升 spring開發(fā)者體驗(yàn)的工具。

好了,以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • 圖書信息管理java實(shí)現(xiàn)代碼

    圖書信息管理java實(shí)現(xiàn)代碼

    這篇文章主要為大家詳細(xì)介紹了圖書信息管理java實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • SpringBoot自定義Starter實(shí)現(xiàn)流程詳解

    SpringBoot自定義Starter實(shí)現(xiàn)流程詳解

    SpringBoot中的starter是一種非常重要的機(jī)制,能夠拋棄以前繁雜的配置,將其統(tǒng)一集成進(jìn)starter,應(yīng)用者只需要在maven中引入starter依賴,SpringBoot就能自動(dòng)掃描到要加載的信息并啟動(dòng)相應(yīng)的默認(rèn)配置。starter讓我們擺脫了各種依賴庫的處理,需要配置各種信息的困擾
    2022-09-09
  • SpringDataRedis入門和序列化方式解決內(nèi)存占用問題小結(jié)

    SpringDataRedis入門和序列化方式解決內(nèi)存占用問題小結(jié)

    spring-data-redis是spring-data模塊的一部分,專門用來支持在spring管理項(xiàng)目對(duì)redis的操作,這篇文章主要介紹了SpringDataRedis入門和序列化方式解決內(nèi)存占用問題,需要的朋友可以參考下
    2022-12-12
  • MyBatis中常用的SQL語句詳解

    MyBatis中常用的SQL語句詳解

    MyBatis是一種優(yōu)秀的持久層框架,它支持定制化SQL、存儲(chǔ)過程以及高級(jí)映射,本文介紹了MyBatis中常用的SQL語句,包括基本查詢、多條件查詢、關(guān)聯(lián)查詢、分頁查詢、插入、更新、刪除等,并結(jié)合MyBatis的特性進(jìn)行了說明
    2025-03-03
  • mybatis 如何利用resultMap復(fù)雜類型list映射

    mybatis 如何利用resultMap復(fù)雜類型list映射

    這篇文章主要介紹了mybatis 如何利用resultMap復(fù)雜類型list映射的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • transactionAttributes各屬性意義及配置

    transactionAttributes各屬性意義及配置

    這篇文章主要介紹了transactionAttributes各屬性意義及配置,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-09-09
  • 基于IntelliJ IDEA的類注釋和方法注釋操作

    基于IntelliJ IDEA的類注釋和方法注釋操作

    這篇文章主要介紹了基于IntelliJ IDEA的類注釋和方法注釋操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • Java Spring開發(fā)環(huán)境搭建及簡單入門示例教程

    Java Spring開發(fā)環(huán)境搭建及簡單入門示例教程

    這篇文章主要介紹了Java Spring開發(fā)環(huán)境搭建及簡單入門示例,結(jié)合實(shí)例形式分析了spring環(huán)境搭建、配置、使用方法及相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2017-11-11
  • java如何讀取resources目錄和同級(jí)目錄文件

    java如何讀取resources目錄和同級(jí)目錄文件

    介紹了Java中讀取resources目錄和同級(jí)目錄文件的方法,并討論了在IDE和發(fā)布環(huán)境中可能遇到的問題,通過測試發(fā)現(xiàn),執(zhí)行目錄可能會(huì)影響文件讀取,建議在使用`user.dir`時(shí)注意jar包的運(yùn)行目錄問題
    2024-12-12
  • SpringCloud 2020-Ribbon負(fù)載均衡服務(wù)調(diào)用的實(shí)現(xiàn)

    SpringCloud 2020-Ribbon負(fù)載均衡服務(wù)調(diào)用的實(shí)現(xiàn)

    這篇文章主要介紹了SpringCloud 2020-Ribbon負(fù)載均衡服務(wù)調(diào)用的實(shí)現(xiàn),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03

最新評(píng)論

桦川县| 鹤壁市| 遂川县| 焦作市| 临湘市| 浦东新区| 张家川| 宣武区| 宜君县| 吕梁市| 聂荣县| 海阳市| 双桥区| 岫岩| 黄平县| 许昌县| 万荣县| 苏尼特右旗| 榆社县| 盐亭县| 河津市| 太康县| 芜湖市| 博兴县| 英超| 灯塔市| 永清县| 洞头县| 虹口区| 肥东县| 五大连池市| 大田县| 紫金县| 筠连县| 福泉市| 千阳县| 姚安县| 璧山县| 尉氏县| 霍邱县| 磴口县|