最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring Boot 入門(mén)指南

 更新時(shí)間:2021年05月27日 11:00:14   作者:淮南一只貓  
Spring Boot 簡(jiǎn)化了Spring 應(yīng)用的初始搭建、開(kāi)發(fā)過(guò)程,開(kāi)發(fā)人員可使用Spring提供的特定的方式來(lái)進(jìn)行配置,不再需要重復(fù)自定義樣板化的配置。本文就將帶你入門(mén)Spring Boot

0x0 前言

記得當(dāng)初放棄 Java 主要原因是幾個(gè)框架整合,花了大半天去編寫(xiě)配置文件,編寫(xiě)任務(wù)后運(yùn)行依然有報(bào)錯(cuò),甚是心累,故轉(zhuǎn)前端開(kāi)發(fā)了。最近周?chē)芏?Java 朋友說(shuō)微服務(wù)開(kāi)發(fā)很爽,各種簡(jiǎn)單,自己本地體驗(yàn)下,的確很簡(jiǎn)單。所以對(duì)此抱有很大的學(xué)習(xí)興趣。再加上之前使用 Nestjs 項(xiàng)目很像 Spring Boot 風(fēng)格尋思還不如直接使用它。

0x1 簡(jiǎn)介

Spring Boot 是由 Pivotal 團(tuán)隊(duì)提供的全新框架,其設(shè)計(jì)目的是用來(lái)簡(jiǎn)化新 Spring 應(yīng)用的初始搭建以及開(kāi)發(fā)過(guò)程。該框架使用了特定的方式來(lái)進(jìn)行配置,從而使開(kāi)發(fā)人員不再需要定義樣板化的配置。用我的話來(lái)理解,就是 Spring Boot 其實(shí)不是什么新的框架,它默認(rèn)配置了很多框架的使用方式,就像 maven 整合了所有的 jar 包,Spring Boot 整合了所有的框架 。

0x2 Hello World

IDE:IntelliJ IDEA 2021.01

JDK:OpenJDK 1.8.0_282

由于我用的是IDEA編輯器,創(chuàng)建環(huán)境可以創(chuàng)建Spring Boot項(xiàng)目,當(dāng)然你可以從 https://start.spring.io/ 根據(jù)自身環(huán)境直接 Generate Project 生成zip文件進(jìn)行編寫(xiě)。

在 IDEA 創(chuàng)建 Spring Boot 操作步驟如下:

  • 在主界面點(diǎn)擊 Create New Project 后左邊列表選擇 Spring Initalizr 選項(xiàng),右邊選項(xiàng)除了 JDK 安裝自身版本其他默認(rèn)即可。
  • 點(diǎn)擊 Next 到下一步,編寫(xiě)項(xiàng)目簡(jiǎn)介請(qǐng)根據(jù)實(shí)際自身情況編寫(xiě)。沒(méi)有特需直接默認(rèn)下一步。
  • Dependencies 界面直接勾選 Web-Web 選項(xiàng)即可
  • 直接 Next 下一步后 IDEA 會(huì)進(jìn)行構(gòu)建依賴 jar 包,請(qǐng)等待完成。
  • 運(yùn)行 main 方法,打開(kāi) http://localhost:8080/ 地址查看效果

0x3 文件解析

如上圖所示,項(xiàng)目目錄解析:

  • pom.xml:Maven構(gòu)建說(shuō)明文件。
  • DemoApplication.java:一個(gè)帶有 main() 方法的類,用于啟動(dòng)應(yīng)用程序(關(guān)鍵)。
  • DemoApplicationTests.java:一個(gè)空的 Junit 測(cè)試類,它加載了一個(gè)使用 Spring Boot 字典配置功能的Spring應(yīng)用程序上下文。
  • application.properties:一個(gè)空的 properties 文件,你可以根據(jù)需要添加配置屬性。

pom.xml

Spring Boot父級(jí)依賴

在這兒簡(jiǎn)單說(shuō)一下配置標(biāo)簽的意思很大的程度上和Spring MVC工程配置是不太一樣的:

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.2.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

從 parent 得知該配置是 Spring Boot 父級(jí)依賴:有了這個(gè),當(dāng)前的項(xiàng)目就是 Spring Boot 項(xiàng)目了,spring-boot-starter-parent 是一個(gè)特殊的 starter ,它用來(lái)提供相關(guān)的 Maven 默認(rèn)依賴,使用它之后,常用的包依賴可以省去 version 標(biāo)簽。關(guān)于 Spring Boot 提供了哪些 jar 包的依賴,可查看 C:\Users\Jaxson[你的用戶名]\.m2\repository\org\springframework\boot\spring-boot-dependencies\2.0.2.RELEASE\spring-boot-dependencies-2.0.2.RELEASE.pom文件得知。

所以在原有的配置文件上想升級(jí)某個(gè)依賴文件版本的話,可以直接 pom 文件添加指定的配置版本,例如:

<properties>
    <spring-data-releasetrain.version>Fowler-SR2</spring-data-releasetrain.version>
</properties>

起步依賴 spring-boot-starter-xx

Spring Boot 提供了很多”開(kāi)箱即用“的依賴模塊,都是以 spring-boot-starter-xx 作為命名的。舉個(gè)例子來(lái)說(shuō)明一下這個(gè)起步依賴的好處,比如組裝臺(tái)式機(jī)和品牌機(jī),自己組裝的話需要自己去選擇不同的零件,最后還要組裝起來(lái),期間有可能會(huì)遇到零件不匹配的問(wèn)題。耗時(shí)又消力,而品牌機(jī)就好一點(diǎn),買(mǎi)來(lái)就能直接用的,后續(xù)想換零件也是可以的。相比較之下,后者帶來(lái)的效果更好點(diǎn),起步依賴就像這里的品牌機(jī),自動(dòng)給你封裝好了你想要實(shí)現(xiàn)的功能的依賴。就比如我們之前要實(shí)現(xiàn)web功能,引入了 spring-boot-starter-web 這個(gè)起步依賴。

Spring Boot Maven插件

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>
  • 把項(xiàng)目打包成一個(gè)可執(zhí)行的超級(jí) JAR(uber-JAR) ,包括把應(yīng)用程序的所有依賴打入 JAR 文件內(nèi),并為 JAR 添加一個(gè)描述文件,其中的內(nèi)容能讓你用 java -jar 來(lái)運(yùn)行應(yīng)用程序。
  • 搜索 public static void main() 方法來(lái)標(biāo)記為可運(yùn)行類。

應(yīng)用入口類

DemoApplication是一個(gè)啟動(dòng)類,就是一個(gè)程序入口,下面添加一個(gè)入口類方法簡(jiǎn)單的演示下:

package com.example.demo;
 
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
 
@RestController
@SpringBootApplication
public class DemoApplication {
 
    @RequestMapping("/")
    public String index() {
        return "Hello World";
    }
 
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
 
}
  • @SpringBootApplication 是 Sprnig Boot 項(xiàng)目的核心注解,主要目的是開(kāi)啟自動(dòng)配置。
  • main 方法這是一個(gè)標(biāo)準(zhǔn)的 Java 應(yīng)用的 main 的方法,主要作用是作為項(xiàng)目啟動(dòng)的入口。
  • @RestController 注解等價(jià)于 @Controller + @ResponseBody 的結(jié)合,使用這個(gè)注解的類里面的方法都以 json 格式輸出。

啟動(dòng)后在瀏覽器會(huì)看到 Hello World 內(nèi)容,一個(gè)簡(jiǎn)單的 Web 的項(xiàng)目就這樣搞定。

0x4 進(jìn)階

項(xiàng)目目錄

在實(shí)際項(xiàng)目中建議使用:

com
  +- example
    +- myproject
      +- Application.java
      |
      +- domain
      |  +- Customer.java
      |  +- CustomerRepository.java
      |
      +- service
      |  +- CustomerService.java
      |
      +- web
      |  +- CustomerController.java
      |
  • Application.java 建議放到跟目錄下面,主要用于做一些框架配置
  • domain 目錄主要用于實(shí)體(Entity)與數(shù)據(jù)訪問(wèn)層(Repository)
  • service 邏輯層主要是業(yè)務(wù)類代碼
  • web(controller) 負(fù)責(zé)頁(yè)面訪問(wèn)控制

養(yǎng)成一個(gè)目錄清晰結(jié)構(gòu)習(xí)慣是必須的...方便后期的維護(hù)性和可讀性。

編寫(xiě)單元測(cè)試

同樣測(cè)試類編寫(xiě)是很重要的習(xí)慣,在本實(shí)例編寫(xiě)簡(jiǎn)單的 http 請(qǐng)求測(cè)試,使用 mockmvc 進(jìn)行,利用MockMvcResultHandlers.print() 打印出執(zhí)行結(jié)果:

package com.example.demo;
 
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.MediaType;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.result.MockMvcResultHandlers;
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
 
@RunWith(SpringRunner.class)
@SpringBootTest
public class DemoApplicationTests {
 
    private MockMvc mvc;
    @Before
    public void setUp() throws Exception {
        mvc = MockMvcBuilders.standaloneSetup(new DemoApplication()).build();
    }
 
    @Test
    public void contextLoads() throws Exception {
        mvc.perform(MockMvcRequestBuilders.get("/").accept(MediaType.APPLICATION_JSON))
                .andExpect(MockMvcResultMatchers.status().isOk())
                .andDo(MockMvcResultHandlers.print())
                .andReturn();
    }
 
}
 

開(kāi)發(fā)環(huán)境的調(diào)試

熱啟動(dòng)在正常開(kāi)發(fā)項(xiàng)目中已經(jīng)很常見(jiàn)了吧,雖然平時(shí)開(kāi)發(fā)web項(xiàng)目過(guò)程中,改動(dòng)項(xiàng)目啟重啟總是報(bào)錯(cuò);但springBoot 對(duì)調(diào)試支持很好,修改之后可以實(shí)時(shí)生效,需要添加以下的配置:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <optional>true</optional>
   </dependency>
</dependencies>
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <fork>true</fork>
            </configuration>
        </plugin>
   </plugins>
</build>

該模塊在完整的打包環(huán)境下運(yùn)行的時(shí)候會(huì)被禁用。如果你使用 java -jar 啟動(dòng)應(yīng)用或者用一個(gè)特定的 classloader 啟動(dòng),它會(huì)認(rèn)為這是一個(gè)“生產(chǎn)環(huán)境”。

0x5 參考

Building an Application with Spring Boot

以上就是Spring Boot 入門(mén)指南的詳細(xì)內(nèi)容,更多關(guān)于Spring Boot 入門(mén)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Java實(shí)現(xiàn)多行文字水印的方法詳解

    Java實(shí)現(xiàn)多行文字水印的方法詳解

    這篇文章主要為大家詳細(xì)介紹了如何利用Java實(shí)現(xiàn)多行文字水印的方法,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,需要的可以參考一下
    2023-02-02
  • Java使用iTextPDF生成PDF文件的實(shí)現(xiàn)方法

    Java使用iTextPDF生成PDF文件的實(shí)現(xiàn)方法

    這篇文章主要介紹了Java使用iTextPDF生成PDF文件的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • spring boot tomcat jdbc pool的屬性綁定

    spring boot tomcat jdbc pool的屬性綁定

    這篇文章主要介紹了spring boot tomcat jdbc pool的屬性綁定的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下
    2018-01-01
  • 如何獲取java類中的屬性注釋

    如何獲取java類中的屬性注釋

    在開(kāi)發(fā)中,有時(shí)需要獲取Java類的屬性注釋,尤其是當(dāng)JPA生成的表缺少注釋時(shí),可以通過(guò)jdk自帶的tools.jar工具包來(lái)實(shí)現(xiàn),方法類似于生成javadoc文檔,需要在pom.xml文件中導(dǎo)入tools.jar的依賴,該jar文件一般位于JAVA_HOME/lib目錄下
    2024-09-09
  • IDEA配置Gradle及Gradle安裝的實(shí)現(xiàn)步驟

    IDEA配置Gradle及Gradle安裝的實(shí)現(xiàn)步驟

    本文主要介紹了IDEA配置Gradle及Gradle安裝的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-08-08
  • Java Lambda表達(dá)式的方法引用和構(gòu)造器引用實(shí)例分析

    Java Lambda表達(dá)式的方法引用和構(gòu)造器引用實(shí)例分析

    這篇文章主要介紹了Java Lambda表達(dá)式的方法引用和構(gòu)造器引用,結(jié)合實(shí)例形式分析了Lambda表達(dá)式的方法引用和構(gòu)造器引用相關(guān)原理、用法及操作注意事項(xiàng),需要的朋友可以參考下
    2019-09-09
  • Springboot實(shí)現(xiàn)多文件上傳代碼解析

    Springboot實(shí)現(xiàn)多文件上傳代碼解析

    這篇文章主要介紹了Springboot實(shí)現(xiàn)多文件上傳代碼解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • 學(xué)習(xí)Java之IO流中有哪些復(fù)雜的API

    學(xué)習(xí)Java之IO流中有哪些復(fù)雜的API

    這篇文章我們要先對(duì)IO流的API有個(gè)基本的認(rèn)知,因?yàn)镮O流的類和方法太多了,我們不得不專門(mén)學(xué)習(xí)一下,所以本文就給大家詳細(xì)的講講Java?IO流中復(fù)雜的API,需要的朋友可以參考下
    2023-09-09
  • JavaSE實(shí)現(xiàn)圖書(shū)管理系統(tǒng)的示例代碼

    JavaSE實(shí)現(xiàn)圖書(shū)管理系統(tǒng)的示例代碼

    這篇博客是在學(xué)習(xí)了一部分Java基礎(chǔ)語(yǔ)法之后的練習(xí)項(xiàng)目,通過(guò)這個(gè)小項(xiàng)目的練習(xí),對(duì)Java中的類和對(duì)象,抽象類和接口等進(jìn)行熟悉理解。快跟隨小編一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • Java流式操作之Collectors工具類操作指南

    Java流式操作之Collectors工具類操作指南

    Collectors是Collector的工具類,類中提供了很多流收集、歸約、分組、分區(qū)等方法,方便我們直接使用,下面這篇文章主要給大家介紹了關(guān)于Java流式操作之Collectors工具類操作的相關(guān)資料,需要的朋友可以參考下
    2023-05-05

最新評(píng)論

光泽县| 贵定县| 五家渠市| 河间市| 鄂州市| 太原市| 漳州市| 安化县| 安多县| 略阳县| 鸡泽县| 山西省| 绥阳县| 丹凤县| 鄂托克旗| 九寨沟县| 铜川市| 巴南区| 满洲里市| 景泰县| 曲麻莱县| 科技| 托里县| 宣汉县| 兰考县| 五原县| 江都市| 视频| 云梦县| 青浦区| 镇雄县| 长沙县| 平定县| 崇明县| 广汉市| 通榆县| 陇川县| 辽阳市| 吉木萨尔县| 德州市| 广元市|