3、快速入門 SpringBoot

一、使用新版 SpringBoot2.X 開發一個 JSON 接口

1.1 SpringBoot 開發項目中常見的數據交互使用形式
  • 後端接口直接返回頁面,現在比較少。常見的傳統 IT 公司比驕多,配合模板引擎,由後端頁面渲染返回。
  • 返回 JSON 數據是現在的主流場景。互聯網公式使用較多,比如微服務接口、前後端分離項目、手機 App 等,基本都是通過 JSON 進行數據交互。
1.2 SpringBoot2.X 項目實戰代碼
  • 演示代碼地址:https://gitee.com/RookieMZL/practice-sample/tree/dev/spring-boot-demo
1.3 SpringBoot2.X 項目常見答疑解惑
  • @RestController = @Controller+@ResponseBody

    • @Controller 作用:用於標記這個類是控制器,返回頁面的時候使用;如果要返回 JSON,則需要在接口上使用 @ResponseBody 纔可以。
    • @RestController作用:用於標記這個類是控制器,返回 JSON 數據的時候使用,如果使用這個註解,則接口返回數據會被序列化未 JSON。
    • @RequestMapping 作用:路由映射,⽤於類上做1級路徑;用於某個方法上做子路徑。
    • @GetMapping("/demo")= @RequestMapping(value = “/demo”,method = RequestMethod.GET)
  • @SpringBootApplication 作用: 用於標記是SringBoot應用,⾥麪包含多個子註解

    • @SpringBootApplication = @Configuration+@EnableAutoConfiguration+@ComponentScan

    • @Configuration: 主要標註在某個類上,用於spring掃描注入,一般結合@Bean使用。

    • @EnableAutoConfiguration: 啓用Spring的自動加載配置,自動載入應用程序所需的所有Bean。

    • @ComponentScan:告訴spring掃描包的範圍,默認是Applocation類所在的全部子包,可以指定其他包的掃描範圍。

    • @ComponentScan({“com.rookie.package1”,“com.rookie.package2”}):指定其他包掃描的的位置。

1.4 SpringBoot目錄文件結構

  • SpringBoot目錄文件結構

    目錄講解

    • src/main/java:存放代碼。
    • src/main/resources:存放配置文件。
    • static: 存放靜態⽂文件,比如 css、js、image。
    • templates:存放靜態⻚頁⾯面jsp,html,tpl。

    同個文件的加載順序,靜態資源文件 Spring Boot 默認如下,裏面找是否存在相應的資源,如果有則直接返回,不在默認加載目錄,則找不到。

    • META/resources >
    • resources >
    • static >
    • public

    默認配置

    spring.resources.static-locations = classpath:/META- INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/
    

二、SpringBoot2.X 啓動方式和部署

2.1 SpringBoot2.X 啓動方式
  • IDEA開發中啓動:本地開發中常用。

  • 外置Tomcat中啓動

    • 接近淘汰,tomcat 版本兼容問題複雜。
    • 微服務容器化部署複雜。
  • Jar方式打包啓動(官方推薦)

    步驟:pom文件新增maven插件

    <plugins>
       <plugin>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-maven-plugin</artifactId>
       </plugin>
    </plugins>
    

    如果沒有加,在啓動 jar 包 ,報錯如下:

    java -jar spring-boot-demo-0.0.1-SNAPSHOT.jar

    no main manifest attribute, in spring-boot-demo-0.0.1-SNAPSHOT.jar

  • 啓動命令

    構建:mvn install

    構建跳過測試類:mvn install -Dmaven.test.skip=true

    target 目錄下有對應的 jar 包就是打包後項目。

    進到對應的target目錄啓動 java -jar xxxxx.jar 即可。想後臺運行,就用守護進程:

    nohup java -jar xxx.jar &

  • 打包後的 Jar 包目錄

    example.jar
    |
    +-META-INF
    |	+-MANIFEST.MF
    +-org
    |	+-springframework
    |		+-boot
    |			+-loader
    |				+-<spring boot loader classes>
    +-BOOT-INF
       +-classes
       |	+-mycompany
       |		+-project
       |			+-YourClasses.class
       +-lib
           +-dependency1.jar
           +-dependency2.jar
    
    

    BOOT-INF:開發完整項目的類(已經編譯成 .class 文件)和依賴的 Jar 包。

    META-INF:指定了項目配置信息(Java 版本等),Start-Class、Main-Class 入口函數。

    Manifest-Version: 1.0
    Implementation-Title: spring-boot-demo
    Implementation-Version: 0.0.1-SNAPSHOT
    Start-Class: com.rookie.SpringBootDemoApplication
    Spring-Boot-Classes: BOOT-INF/classes/
    Spring-Boot-Lib: BOOT-INF/lib/
    Build-Jdk-Spec: 1.8
    Spring-Boot-Version: 2.1.6.RELEASE
    Created-By: Maven Archiver 3.4.0
    Main-Class: org.springframework.boot.loader.JarLauncher
    

    org:SpringBoot 的一些class文件。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章