SpringBoot入門


一、SpringBoot 入門學習

SpringBoot是一個快速開發的框架,能夠幫助我們快速整合第三方框架(主要借助於 Maven 依賴關系),完全采用注解化,簡化 XML 配置,內置嵌入 Http 服務器(Tomcat, Jetty),默認嵌入 Tomcat 服務器,最終以 Java 應用程序進行執行。

       SpringBoot 的主要特點為:

                          1、簡化maven,只需要- -兩個依賴就可以實現Spring+ SpringMVC框架

                          2、自動配置Spring,快速構建項目,省去配置文件

                          3、零配置,注解化,約定大於配置,簡化XML操作

                          4、對主流開發框架的無配置集成

    

  SpringBoot環境要求:
       1、jdk要求1.8以上
       2、使用Maven進行開發

  SpringBoot基礎開發流程:

       1、創建Maven項目

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

           

                              Next下一步

                             

 

 

                創建好的項目結構

         

 

 

 

          

 

 

         2、引入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控制器   ,創建控制器輸出內容到頁面效果展示

    

    

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

    1、右鍵Run As> Spring Boot App

    2、Boot Dashboard儀表板上  如下圖

    

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

          運行結果如下

 

 

 

    

 

 

    第六步打成jar包發布項目

        1、 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配置文件

 

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

                2、SpringBoot配置文件

                   配置文件的兩種文件格式:1、application.properties   2、application.yaml

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

                       SpringBoot默認的主配置文件名

                     默認配置文件放在resources

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

    

 

 

     

 

 

     這樣就新建成功了

    

 

    

 

 

     

 

 

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

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

    YAML 有以下基本規則: 

           大小寫敏感

          使用縮進表示層級關系

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

      一定要有層次結構

       

 

      

 

      

        配置文件的路徑及優先級

        配置文件在項目中有四個可以放的地址

           1、根目錄下(二當家)

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

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

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

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

           結構如下:

             

 

 

            下面來測試一下

 

            首先根目錄下

            

 

             然后項目根目錄中config

             

 

 

               其次項目的resources目錄下

              

 

 

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

    

 

 

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

        

 

         

 

         如果報了這個錯就說明端口號沒占用了

        

 

三、 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就是配置文件名中間的名稱

     

 

     

 

 

 四、自定義屬性

       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

       1、導入依賴

            

 

   

 

       

 

        

 

          @ConfigurationProperties和@Value優缺點

           1) 可以從配置文件中批量注入屬性;

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

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

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

        

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

 

 

 

 

 

 

 

 

 

 

           

 

 

        

 

 

         

 

 

 

 

 

 

 

 

 

 

       

 

     

 

 

 

 

    

 

            


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM