亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

SpringBoot新手入門的快速教程

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

SpringBoot是什么?

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

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

特征:

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

SpringBoot要解決的問題?

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

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

SpringBoot的優(yōu)勢?

快速構建項目,敏捷式開發(fā)

項目可獨立運行,無須外部依賴Servlet容器。

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

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

與spring cloud天然集成。

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

什么是微服務?

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

它是一種“軟件的架構風格”,一個應用應該是一組小型服務。各個小型服務運行在各自的環(huán)境中,通過http的方式進行互通。

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

每一個功能元素都是一個可以獨立替換和可獨立升級的軟件單元。它的好處是就是可以任意組合。極大的增強了軟甲架構的靈活性。

開啟SpringBoot第一個項目

環(huán)境準備:

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

快速啟動一個SpringBoot項目:

使用idea首先

填寫坐標:

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

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

他會默認幫我們生成一個主程序類,我們可以直接通過主程序入口啟動SpringBoot

默認在resources模板下面會生成一下幾個目錄和文件。

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

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

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

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

在SpringBoot中,必須繼承spring-boot-starter-parent這個包,這個是SpringBoot的默認配置信息,極大的提高了我們的開發(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;下

默認它只會掃描到同包或者子包下。

SpringBoot啟動器

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

@SpringBootApplication

SpringBoot應用標注在某個類上說明這個類是SpringBoot的主配置類,SpringBoot就應該運行這個類的main方法來啟動SpringBoot應用。

該注解其實是一個組合注解,其中包含了一些其它的注解。

@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,二者功能也一致,標注當前類是配置類,
并會將當前類內(nèi)聲明的一個或多個以@Bean注解標記的方法的實例納入到spring容器中,并且實例名就是方法名

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

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

SpringBoot自動配置

SpringBoot中最核心的功能就是自動配置類,在SpringBoot中會加載大量的自動配置類。

我們可以查看我們需要的功能有沒有SpringBoot默認寫好的自動配置類。如果有就不需要配置了,如果沒有,可以根據(jù)對應的XxxProperties類查看相關的屬性

然后再配置文件對修改對應的屬性值即可。

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

我們通過SpringBoot會加載大量的AutoConfiguration配置類,其中對應相關組件的配置信息。

該類是通過全注解方式來配置相關的屬性。

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

Conditional擴展:

在SpringBoot自動配置類中存在大量的@Conditional開頭的注解,這些注解的作用是當滿足某些條件時,該注解才會生效。

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

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

總結(jié):

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

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

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

相關文章

  • 解決springboot 獲取form-data里的file文件的問題

    解決springboot 獲取form-data里的file文件的問題

    這篇文章主要介紹了解決springboot 獲取form-data里的file文件的問題的相關資料,這里提供了詳細的解決步驟,需要的朋友可以參考下
    2017-07-07
  • 基于SpringBoot和Vue實現(xiàn)頭像上傳與回顯功能

    基于SpringBoot和Vue實現(xiàn)頭像上傳與回顯功能

    在現(xiàn)代Web應用中,用戶個性化體驗尤為重要,其中頭像上傳與回顯是一個常見的功能需求,本文將詳細介紹如何使用Spring Boot和Vue.js構建一個前后端協(xié)同工作的頭像上傳系統(tǒng),并實現(xiàn)圖片的即時回顯,需要的朋友可以參考下
    2024-08-08
  • 詳解Java并發(fā)包中線程池ThreadPoolExecutor

    詳解Java并發(fā)包中線程池ThreadPoolExecutor

    ThreadPoolExecutor是Java語言對于線程池的實現(xiàn)。線程池技術使線程在使用完畢后不回收而是重復利用。如果線程能夠復用,那么我們就可以使用固定數(shù)量的線程來解決并發(fā)問題,這樣一來不僅節(jié)約了系統(tǒng)資源,而且也會減少線程上下文切換的開銷
    2021-06-06
  • JAVA中出現(xiàn)異常、拋出異常后續(xù)代碼是否執(zhí)行情況詳析

    JAVA中出現(xiàn)異常、拋出異常后續(xù)代碼是否執(zhí)行情況詳析

    當產(chǎn)生異常后,并在異常處理器中進行執(zhí)行之后,程序會是如何的一種狀態(tài),是終止還是繼續(xù)執(zhí)行處理之后的代碼呢,下面這篇文章主要給大家介紹了關于JAVA中出現(xiàn)異常、拋出異常后續(xù)代碼是否執(zhí)行情況的相關資料,需要的朋友可以參考下
    2024-05-05
  • 一文詳解Java中的Stream的匯總和分組操作

    一文詳解Java中的Stream的匯總和分組操作

    這篇文章主要為大家詳細介紹了Java8中的Stream的匯總和分組的操作,文中的示例代碼講解詳細,對我們學習Java有一定幫助,需要的可以參考一下
    2022-09-09
  • Lambda表達式下訪問外部變量問題

    Lambda表達式下訪問外部變量問題

    這篇文章主要介紹了Lambda表達式下訪問外部變量問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Maven2環(huán)境安裝與準備工作詳解

    Maven2環(huán)境安裝與準備工作詳解

    這篇文章主要為大家詳細介紹了Maven2環(huán)境安裝與準備工作,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • Java遍歷Json的簡單實例

    Java遍歷Json的簡單實例

    這篇文章主要介紹了Java遍歷Json的簡單實例,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • Spring Event觀察者模式事件監(jiān)聽詳解

    Spring Event觀察者模式事件監(jiān)聽詳解

    這篇文章主要介紹了Java Spring Event事件監(jiān)聽詳情解析,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-08-08
  • Java多線程編程中synchronized線程同步的教程

    Java多線程編程中synchronized線程同步的教程

    Java的synchronized關鍵字可以修飾方法和對象來構建線程間的同步,這里我們就來共同學習Java多線程編程中synchronized線程同步的教程:
    2016-07-07

最新評論