SpringBoot入門

SpringBoot的目錄結構

/src/main 項目根目錄
/java java源代碼
/resources 資源目錄
/resources/static 靜態(tài)資源目錄
/resources/templates 表示層頁面目錄
/resources/application.properties SpringBoot配置文件
/test 測試文件目錄

使用Maven創(chuàng)建SpringBoot項目

  • 點擊IDEA create new project 選擇Maven 直接點擊下一步
    create new project
  • 設置GroupIdArtifactId, 再點擊next, 再點擊Finish項目創(chuàng)建完成
    設置GroupId和ArtifactId
  • resource里創(chuàng)建static文件, templates文件夾和application.properties
    創(chuàng)建固定需要的目錄結構
  • 添加SpringBoot的依賴, 在pom.xml里添加如下配置
    • 第一種
      <build>
          <plugins>
              <plugin>
                  <groupId>org.springframework.boot</groupId>
                  <artifactId>spring-boot-maven-plugin</artifactId>
                  <version>1.5.14.RELEASE</version>
                  <configuration>
                      <!--設置項目的入口-->
                      <mainClass>com.rui.springboot.MySpringBootAppliacation</mainClass>
                  </configuration>
                  <executions>
                      <execution>
                          <goals>
                              <goal>repackage</goal>
                          </goals>
                      </execution>
                  </executions>
              </plugin>
          </plugins>
      </build>
      <dependencies>
          <dependency>
              <groupId>org.springframework.boot</groupId>
              <artifactId>spring-boot-starter-web</artifactId>
              <version>1.5.14.RELEASE</version>
          </dependency>
    
          <dependency>
              <groupId>org.springframework.boot</groupId>
              <artifactId>spring-boot-maven-plugin</artifactId>
              <version>1.5.14.RELEASE</version>
          </dependency>
      </dependencies>
    
    • 第二種(注: 如果出現(xiàn)SpringBoot依賴的jar包下載不下來的情況, 請使用第一種)
        <parent>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-parent</artifactId>
          <version>1.5.14.RELEASE</version>
      </parent>
      <dependencies>
          <dependency>
              <groupId>org.springframework.boot</groupId>
              <artifactId>spring-booot-starter-web</artifactId>
          </dependency>
      </dependencies>
      <build>
          <plugins>
              <plugin>
                  <groupId>org.springframework.boot</groupId>
                  <artifactId>spring-boot-maven-plugin</artifactId>
              </plugin>
          </plugins>
      </build>
    
  • 添加項目入口, 項目目錄結構的MySpringBootApplication, 添加@SpringBootApplication注解以后, 點擊右鍵run即可運行項目
// 說明這是一個SpringBoot的入口類
@SpringBootApplication
public class MySpringBootAppliacation {
    public static void main(String[] args) {
        SpringApplication.run(MySpringBootAppliacation.class);
    }
}
  • 項目運行成功


    項目運行成功

使用Spring Initializr構建Spring Boot應用

  • 創(chuàng)建新項目選擇Spring Initializr,JDK選擇1.8, 選擇Default URL
    create new project
  • 點擊next, 輸入GroupArtifact
    輸入項目信息
  • 左側(cè)選擇web, 右側(cè)勾選Spring web, 點擊next
    image.png
  • 輸入項目名, 選擇項目路徑, 點擊Finish完成創(chuàng)建


  • 會自動生成resource里的文件目錄, pom.xml里的配置, 以及項目入口類, 不需要手動設置配置


SpringBoot啟動流程與常用配置

  • SpringBoot的入口類
    • 入口類命名通常以*Application結尾
    • 入口類上增加@SpringBootApplication注解
    • 利用SpringApplication.run()方法啟動應用
  • SpringBoot啟動流程
    SpringBoot啟動流程
  • SpringBoot中的常用配置
    配置名稱 默認值 描述
    server.port 8080 端口號
    server.servlet.context-path / 設置上下文
    logging.file 日志輸出路徑
    logging.level info 最低日志輸出級別
    debug false 開啟/關閉調(diào)試模式
    spring.datasource.* 與數(shù)據(jù)庫相關的設置
    application.properties中寫入配置
      # 端口號
      server.port=80
      # 上下文
      server.servlet.context-path=/myspringboot
      # 日志
      logging.file=e:/myspringboot.log
      # 提高日志的輸出級別 debug/info/warn/error/fatal(災難級別, 服務器宕機)
      logging.level.root=error
      # debug 是否啟動調(diào)試模式
      debug=false
      # spring.datasource.* 設置數(shù)據(jù)源. 設置jdbc的相關參數(shù)
      ## 設置JDBC的啟動類
      spring.datasource.driver-class-name=com.mysql.jdbc.Driver
      ## 設置數(shù)據(jù)庫的url
      spring.datasource.url=jdbc:mysql://localhost:3306/test
      ## 設置數(shù)據(jù)庫的賬號
      spring.datasource.username=root
      ## 設置數(shù)據(jù)庫的密碼
      spring.datasource.password=111111
    

SpringBoot配置文件

在日常開發(fā)中, 如果將配置都寫在application.properties中, 太過于死板, 不利于運維修改配置信息

  • 在SpringBoot中支持兩種配置文件
    • 屬性文件: application.properties
    • YAML格式: application.yml
  • YAML語法簡介
    • YAML是一種簡潔的非標記語言, YAML以數(shù)據(jù)為中心, 使用空白, 縮進, 分行組織數(shù)據(jù), 從而使得表示更加簡潔易讀.
  • YAML語法格式
    • 標準格式: key:(空格)value
    • 使用刻個代表層級關系, 以:結束
  • resources下創(chuàng)建application.yml文件, 即可實現(xiàn)和以上同樣的配置
    debug: false
    # 在1.5.x的版本里logging
    #logging:
    #  level: info
    #  file: ./e/
    logging:
      level:
        root: info
      file: ./e/
    
    spring:
      datasource:
        driver-class-name: com.mysql.jdbc.Driver
        url: jdbc:mysql://localhost:3306/test
        username: root
        password: root
    
  • 自定義配置項
    SpringBoot允許我們自定義應用配置項, 在程序運行時允許動態(tài)加載, 這為程序提供了良好的可維護性
    在實際的項目開發(fā)中, 我們通常將項目的自定義信息放在配置文件中.
    debug: false
    
    logging:
      level:
        root: info
      file: ./e/
    spring:
      datasource:
        driver-class-name: com.mysql.jdbc.Driver
        url: jdbc:mysql://localhost:3306/test
        username: root
        password: root
    # 自定義配置
    course:
      config:
        name: 李四
        age: 14
        isStudent: true
    
    配置讀取
    @Controller
    public class MyController {
        @Value("${course.config.name}")
        private String name;
        @Value("${course.config.age}")
        private Integer age;
        @Value("${course.config.isStudent}")
        private Boolean isStudent;
    }
    
  • 環(huán)境配置文件
    • SpringBoot可針對不同的環(huán)境提供不同的Profile文件
    • Profile文件的默認命名格式為application-{env}.yml
    • 使用spring.profiles.active選項來指定不同的profile
    • resources下創(chuàng)建三個yml文件, 名字格式固定
      在resources下創(chuàng)建三個yml文件, 名字格式固定
    • application-dev.yml為測試環(huán)境的配置文件
    debug: false
    
    logging:
      level:
        root: info
      file: ./e/
    
    spring:
      datasource:
        driver-class-name: com.mysql.jdbc.Driver
        url: jdbc:mysql://localhost:3306/test
        username: root
        password: root
    course:
      config:
        name: 李四
        age: 14
        isStudent: true
    
    • application-prd.yml為正式環(huán)境的配置文件
      debug: false
    
    logging:
      level:
        root: info
      file: ./e/
    spring:
      datasource:
        driver-class-name: com.mysql.jdbc.Driver
        url: jdbc:mysql://11.11.11:3306/test
        username: root
        password: root
    course:
      config:
        name: 張三
        age: 14
        isStudent: true
    server:
      port: 80
    
    • 項目的配置文件application.yml
      spring:
      profiles:
        active: prd # prd=>正式環(huán)境. dev=>測試環(huán)境, 改變active的值, 即可切換配置文件
    

打包與運行

  • 利用Mavenpackage命令, 生成可獨立運行的jar
    利用`Maven`的`package`命令, 生成可獨立運行的`jar`包

    運行即可生成jar
  • 利用java -jar xxx.jar命令啟動Spring Boot應用
    • 進入jar包所在的文件內(nèi), 執(zhí)行jar -jar myspringboot-0.0.1-SNAPSHOT.jar即可啟動
  • jar包可自動加載同目錄下的application配置文件
    • 如果已經(jīng)啟動還想切換環(huán)境, 將resources下的yml文件復制到和jar包同目錄下, Spring Boot會優(yōu)先加載同級目錄下的yml文件, 切換完畢以后, 再次執(zhí)行jar -jar myspringboot-0.0.1-SNAPSHOT.jar.
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市捷枯,隨后出現(xiàn)的幾起案子焙畔,更是在濱河造成了極大的恐慌,老刑警劉巖迫像,帶你破解...
    沈念sama閱讀 207,248評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異柳骄,居然都是意外死亡瘦赫,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評論 2 381
  • 文/潘曉璐 我一進店門梁肿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蜓陌,“玉大人,你說我怎么就攤上這事吩蔑∨ト龋” “怎么了?”我有些...
    開封第一講書人閱讀 153,443評論 0 344
  • 文/不壞的土叔 我叫張陵烛芬,是天一觀的道長隧期。 經(jīng)常有香客問我飒责,道長,這世上最難降的妖魔是什么仆潮? 我笑而不...
    開封第一講書人閱讀 55,475評論 1 279
  • 正文 為了忘掉前任宏蛉,我火速辦了婚禮,結果婚禮上性置,老公的妹妹穿的比我還像新娘拾并。我一直安慰自己,他們只是感情好鹏浅,可當我...
    茶點故事閱讀 64,458評論 5 374
  • 文/花漫 我一把揭開白布嗅义。 她就那樣靜靜地躺著,像睡著了一般隐砸。 火紅的嫁衣襯著肌膚如雪之碗。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,185評論 1 284
  • 那天季希,我揣著相機與錄音继控,去河邊找鬼。 笑死胖眷,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的霹崎。 我是一名探鬼主播珊搀,決...
    沈念sama閱讀 38,451評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼尾菇!你這毒婦竟也來了境析?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,112評論 0 261
  • 序言:老撾萬榮一對情侶失蹤派诬,失蹤者是張志新(化名)和其女友劉穎劳淆,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體默赂,經(jīng)...
    沈念sama閱讀 43,609評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡沛鸵,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,083評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了缆八。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片曲掰。...
    茶點故事閱讀 38,163評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖奈辰,靈堂內(nèi)的尸體忽然破棺而出栏妖,到底是詐尸還是另有隱情,我是刑警寧澤奖恰,帶...
    沈念sama閱讀 33,803評論 4 323
  • 正文 年R本政府宣布吊趾,位于F島的核電站宛裕,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏论泛。R本人自食惡果不足惜揩尸,卻給世界環(huán)境...
    茶點故事閱讀 39,357評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望孵奶。 院中可真熱鬧疲酌,春花似錦、人聲如沸了袁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽载绿。三九已至粥诫,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間崭庸,已是汗流浹背怀浆。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留怕享,地道東北人执赡。 一個月前我還...
    沈念sama閱讀 45,636評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像函筋,于是被迫代替她去往敵國和親沙合。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,925評論 2 344

推薦閱讀更多精彩內(nèi)容