SpringBoot入門

1、SpringBoot 入門學習

SpringBoot是一個快速開發的框架,可以幫助咱們快速整合第三方框架(主要藉助於 Maven 依賴關係),徹底採用註解化,簡化 XML 配置,內置嵌入 Http 服務器(Tomcat, Jetty),默認嵌入 Tomcat 服務器,最終以 Java 應用程序進行執行。java

       SpringBoot 的主要特色爲:web

                          一、簡化maven,只須要- -兩個依賴就能夠實現Spring+ SpringMVC框架spring

                          二、自動配置Spring,快速構建項目,省去配置文件數據庫

                          三、零配置,註解化,約定大於配置,簡化XML操做數組

                          四、對主流開發框架的無配置集成服務器

    

  SpringBoot環境要求:
       一、jdk要求1.8以上
       二、使用Maven進行開發app

  SpringBoot基礎開發流程:框架

       一、建立Maven項目maven

        第一步新建一個Maven項目 New>Maven Project函數

           

                              Next下一步

                             

 

 

                建立好的項目結構

         

 

 

 

          

 

 

         二、引入SpringBoot的pom依賴

        父模塊依賴: spring- boot- starter-parent

        啓動依賴: spring- boot-starter-web

        測試依賴: spring- boot-starter-test

        熱部署依賴: spring-boot- devtools

        

<!-- Spring Boot 啓動父依賴 -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.4.RELEASE</version>
        <relativePath />
    </parent>
    
    <!-- 項目設置:編碼格式UTF-8 -->
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>
    
    <dependencies>
        <!--單元測試依賴 -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
        
        <!-- Spring Boot SpringMVC框架依賴 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        
        <!-- Spring Boot 測試依賴 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        
        <!-- 熱部署 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
            <!-- optional=true,依賴不會傳遞,該項目依賴devtools;以後依賴myboot項目的項目若是想要使用 devtools,須要從新引入 -->
            <scope>true</scope><!-- 熱部署 -->
        </dependency>
    </dependencies>

    粘貼到以下位置

     

 

 

     

    第三步建立SpringBoot入口函數

    在項目的src/main/java目錄下的com.ysd.demo.demo包中隨意建立一個帶main()方法的類(如類名爲:App類),在類的上面添加註解          @SpringBootApplication, 並在 main()的方法體中添加SpringApplication.run(類名.class,args)。此時該類爲 SpringBoot 的入口函數即主模塊,內容以下:

    

 

          新建一個class       Ctrl+N  建一個class   Finish完成

      

 

    入口函數標記註解:@SpringBootApplication

 

     

      

    第四步建立Controller控制器   ,建立控制器輸出內容到頁面效果展現

    

    

    第五步運行項目  兩種方法運行項目

    一、右鍵Run As> Spring Boot App

    二、Boot Dashboard儀表板上  以下圖

    

  注意:一、默認端口號8080   二、默認訪問地址沒有項目名

          運行結果以下

 

 

 

    

 

 

    第六步打成jar包發佈項目

        一、 pom.xml 文件中添加一個 SpringBoot 插件依賴

<build>
<plugins>
 <!-- SpringBoot插件 -->
 <plugin>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-maven-plugin</artifactId>
 </plugin>
</plugins>
 <!-- SpringBoot項目打包jar名稱 -->
<finalName>demo</finalName>
</build>

 

        

 

       注意:在打包以前須要先肯定項目的java環境是jdk而非jre

       點擊項目右鍵Build Path

        

 

 

         

 

 

 

 

      打包命令clean package

      右鍵項目--run as --maven build--golas輸入 clean package

      

 

      

 

      把jar包放在其中一個盤裏(例如我在E盤的test文件夾中)

      

 

 

 

      cmd運行jar包

      java -jar jar包名(demo.jar)

      Ctrl+c  關閉命令

      

 

      cmd修改端口號 :java -jar demo.jar --server.port=4399

      

 

 

二. SpringBoot配置文件

 

     一、Spring Boot框架遵循約定大於配置。

                二、SpringBoot配置文件

                   配置文件的兩種文件格式:一、application.properties   二、application.yaml

      若是兩個在同一級目錄,默認讀取application.properties

                       SpringBoot默認的主配置文件名

                     默認配置文件放在resources

     下面是第一種文件格式:application.properties 

    

 

 

     

 

 

     這樣就新建成功了

    

 

    

 

 

     

 

 

     下面是第二種文件格式application.yaml

      YAML Ain’t Markup Language,YAML 是一種簡潔的非標記語言。YAML 以數據爲中心,使用空白,縮進,分行組織數據,從而使得表示更加簡潔易讀。 

    YAML 有如下基本規則: 

           大小寫敏感

          使用縮進表示層級關係

          禁止使用 tab 縮進,只能使用空格鍵
          縮進長度沒有限制,只要元素對齊就表示這些元素屬於一個層級
          使用#表示註釋
          字符串能夠不用引號標註
     

      必定要有層次結構

       

 

      

 

      

        配置文件的路徑及優先級

        配置文件在項目中有四個能夠放的地址

           一、根目錄下(二當家)

          二、項目根目錄中config下(大當家)

          三、項目的resources目錄下(四當家)

          四、項目的resources中的config目錄下(三當家)

           在四個配置文件存儲位置,讀取會有優先級是2>1>4>3

           結構以下:

             

 

 

            下面來測試一下

 

            首先根目錄下

            

 

             而後項目根目錄中config

             

 

 

               其次項目的resources目錄下

              

 

 

               最後項目的resources中的config目錄下

    

 

 

       測試結果:仍是先執行根目錄下的

        

 

         

 

         若是報了這個錯就說明端口號沒佔用了

        

 

3、 SpringBoot多環境配置

      在項目的整個研發過程當中,同一個項目會面臨着不一樣的使用環境。使用環境不一樣,須要的配置信息也會不一樣。例如,數據庫配置,在開發的時候,咱們通常用測試數據庫,而在生產環境的時候,咱們是用正式的數據庫。若是在項目中只有 application.properties(application.yml)一個配置文件的話,該文件中的屬性值會常常須要改動,就會使項目總體的體驗變得很是差,並且出錯率也極高。這時候,咱們能夠用 profile 在不一樣的環境下配置不一樣的配置文件。這樣一來,在 SpringBoot 項目中就出現了多環境的配置文件。 

      根據不一樣的環境定義不一樣的配置環境--對應配置文件

      SpringBoot環境配置公式:application-{profile} .properties

      {profile} dev或者test或者prod  也能夠自定義

      開發環境(模式) dev application-dev . properties

      測試環境(模式) test application-test. Properties

      生產環境(模式) prod application-prod. Properties

      使用spring.profiles.active=dev(環境) 切換環境

      下面如何建立:

        src/main/resources右鍵新建一個file

        結構以下:

        

 

        

 

     spring.profiles.active=(環境)dev    #dev就是配置文件名中間的名稱

     

 

     

 

 

 4、自定義屬性

       SpringBoot 能夠在配置文件中修改默認約定的屬性值,還能夠添加一些本身須要的屬性,也就是能夠自定義一些屬性。這些自定義的屬性可使用@Value 註解將屬性值注入到 beans 中,或使用@ConfigurationProperties註解將屬性值綁定到結構化的 beans 中 。 

        自定義的屬性能夠放到 application.properties(或 application.yml)全局配置文件中,也能夠在自定義的其餘配置文件中定義

        下面自定義一個一個學生信息  使用的也是propertisyanl文件使用propertis

         右鍵--new  file  --stu.properties   --右鍵編碼格式

          

          如何讀取自定義屬性值到實體類

          兩種方式:

               使用@Value註解將屬性值單獨注入指定到beans 單個

               使用@ConfigurationProperties註解將屬性值綁定到特定結構化的beans中  批量

              第一種  使用@Value註解將屬性值單獨注入指定到beans

              新建一個class

            

 

 

            

              

            

            1要注入自定義屬性先@Component

                     @Component :將實體類交給Spring進行管理 進行bean化,才能進行注入自定義屬性值

            2綁定自定義配置文件  指定配置文件的地址

            3、使用@value("${屬性名|}")   ${屬性名|}--spel表達式

     

 

 

       

 

       使用@ConfigurationProperties註解將屬性值綁定到特定結構化的beans

       一、導入依賴

            

 

   

 

       

 

        

 

          @ConfigurationProperties和@Value優缺點

           1) 能夠從配置文件中批量注入屬性;

          2) 支持獲取複雜的數據類型;

          3) 對屬性名匹配的要求較低,好比 user-name,user_name,userName,USER_NAME 均可以取值;

          4) 支持 JAVA 的 JSR303 數據校驗;
          5) 缺點是不支持強大的 SpEL 表達式;

        

        @Value 註解的優缺點正好相反,它只能一個個配置注入值;不支持數組、集合等複雜的數據類型;不支持數據校驗;對屬性名匹配有嚴格的要求。最大的特色是支持 SpEL 表達式,使其擁有更豐富的功能。 

相關文章
相關標籤/搜索