欧美成人午夜免费全部完,亚洲午夜福利精品久久,а√最新版在线天堂,另类亚洲综合区图片小说区,亚洲欧美日韩精品色xxx

扣丁學(xué)堂Java培訓(xùn)帶你5分鐘快速上手Spring Boot

2019-04-04 13:10:41 2114瀏覽

今天扣丁學(xué)堂Java培訓(xùn)老師給大家分享一篇老司機(jī)帶你5分鐘快速上手SpringBoot的詳細(xì)介紹,首先與一些動(dòng)態(tài)語言(如Ruby、Groovy、Node.js)相比,Java開發(fā)顯得異常笨重。接觸過外包項(xiàng)目的朋友也有所了解,如果要開發(fā)一個(gè)小型項(xiàng)目,首選的編程語言并不是Java,而是PHP。為什么呢?因?yàn)殚_發(fā)起來快!目前很多大型互聯(lián)網(wǎng)公司的早起編程語言都是類似PHP這種能夠快速開發(fā)的語言。



既然問題出現(xiàn)了,那必然有解決問題的方案,SpringBoot做到了。SpringBoot是由Pivotal公司所屬團(tuán)隊(duì)研發(fā),該公司的企業(yè)宗旨為:

致力于“改變世界構(gòu)造軟件的方式(Wearetransforminghowtheworldbuildssoftware)”,提供云原生應(yīng)用開發(fā)PaaS平臺(tái)及服務(wù),幫助企業(yè)客戶采用敏捷軟件開發(fā)方法論,從而提高軟件開發(fā)人員工作效率、減少運(yùn)維成本,實(shí)現(xiàn)數(shù)字化轉(zhuǎn)型、IT創(chuàng)新,并最終實(shí)現(xiàn)業(yè)務(wù)創(chuàng)新。

SpringBoot讓我們可以在幾分鐘內(nèi)就搭建出一套項(xiàng)目的基礎(chǔ)架構(gòu),同時(shí)為我們提供了大量集成方案——starters。基于“約定優(yōu)于配置”的理念,減少大量的配置文件,讓項(xiàng)目快速、簡(jiǎn)單的運(yùn)行起來。內(nèi)置web容器(如tomcat、Netty等),通過jar-jar命令即可啟動(dòng)一個(gè)項(xiàng)目。

項(xiàng)目創(chuàng)建

環(huán)境要求

采用SpringBoot最新版本2.1.3來講解。我們使用Maven項(xiàng)目管理工具來管理項(xiàng)目,電腦上要預(yù)先安裝好Maven3.3+(SpringBoot要求)版本。JDK當(dāng)然也少不了,但需要JDK8及以上版本。

創(chuàng)建項(xiàng)目方式一

通過官網(wǎng)提供的SpringInitializr來創(chuàng)建項(xiàng)目。顯示內(nèi)容如下:



簡(jiǎn)單了解一下相應(yīng)的參數(shù)選擇:

Project:選擇項(xiàng)目構(gòu)建的工具,采用默認(rèn)的Maven;

Language:選擇構(gòu)建項(xiàng)目的語言,采用默認(rèn)的Java;

SpringBoot:選擇使用的SpringBoot的版本信息,采用最新版本2.1.3;

ProjectMetadata:設(shè)置項(xiàng)目的元數(shù)據(jù),主要就是設(shè)置Maven相關(guān)的配置;Group,對(duì)應(yīng)Maven中的GroupId,Artifact對(duì)應(yīng)Maven中的ArtifactId。

打開Moreoptions會(huì)看到另外一些默認(rèn)的配置:



Packaging:指定打包的模式,默認(rèn)采用Jar包模式,即使用java-jar啟動(dòng)即可,如果需要部署到單獨(dú)的tomcat或其他web容器,則可選擇war包。

JavaVersion:SpringBoot2.13默認(rèn)支持最低JDK為8。

我們前面提到的starters的選擇就是在Dependencies中設(shè)置,在沒有輸入任何內(nèi)容的時(shí)候,能夠看到該輸入欄目有對(duì)應(yīng)的提示信息。當(dāng)輸入web時(shí),會(huì)動(dòng)態(tài)匹配與web相關(guān)的依賴,點(diǎn)擊“?”添加即可。這里選擇web的最小化配置。



當(dāng)完成選擇,點(diǎn)擊“GenerateProject”即可自動(dòng)下載創(chuàng)建好的項(xiàng)目代碼。解壓之后,會(huì)看到是一個(gè)標(biāo)準(zhǔn)的Maven項(xiàng)目,使用idea等IDE引入Maven項(xiàng)目,自動(dòng)加載依賴即可,這里不再贅述。



創(chuàng)建項(xiàng)目方式二

第二種創(chuàng)建方式就是直接使用IDEA進(jìn)行創(chuàng)建,當(dāng)然前提是IDEA中已經(jīng)安裝了SpringBoot相關(guān)的插件——SpringBoot,如下圖所示。



像創(chuàng)建其他項(xiàng)目一樣,F(xiàn)ile,New,Project…,即可進(jìn)入創(chuàng)建項(xiàng)目頁面,如下圖:



選擇SpringInitializr,展示右邊基礎(chǔ)配置項(xiàng)。我們會(huì)發(fā)現(xiàn),其實(shí)此插件進(jìn)行創(chuàng)建時(shí)默認(rèn)也是調(diào)用官方提供的網(wǎng)址進(jìn)行創(chuàng)建。選擇JDK8,點(diǎn)擊下一步。



像第一種方式一樣,填寫相關(guān)參數(shù)信息,這里就不再重復(fù)描述。點(diǎn)擊“Next”,進(jìn)入選擇依賴界面。點(diǎn)擊“Web”,同時(shí)勾選中間部分出現(xiàn)的“Web”。能夠看到下面出現(xiàn)了“ServletwebapplicationwithSpringMVCandTomcat”,因此,項(xiàng)目已經(jīng)具有了SpringMVC框架和Tomcat內(nèi)置web容器了。



當(dāng)然,如果項(xiàng)目需要,也可以選擇添加更多相關(guān)依賴。完成依賴選擇之后,點(diǎn)擊“Next”,指定項(xiàng)目的名稱和位置,點(diǎn)擊“Finish”,等待項(xiàng)目構(gòu)建完成即可。根據(jù)網(wǎng)絡(luò)速度,等待時(shí)間有所不同,當(dāng)添加依賴jar包一直卡著不動(dòng)時(shí),可考慮關(guān)閉項(xiàng)目重新打開,手動(dòng)“Reimport”一下Maven依賴。

項(xiàng)目目錄結(jié)構(gòu)

項(xiàng)目完成創(chuàng)建之后,來看一下目錄結(jié)構(gòu):



項(xiàng)目目錄結(jié)構(gòu)簡(jiǎn)單明了,就是一個(gè)普通的Maven項(xiàng)目。src/main/java目錄下為項(xiàng)目的啟動(dòng)程序和后續(xù)需要編寫的業(yè)務(wù)代碼。resources目錄存放配置文件和資源文件,如web項(xiàng)目的js、css、image、jsp等。test目錄存放單元測(cè)試類。

配置文件

在常規(guī)spring構(gòu)建的web項(xiàng)目中的配置文件,比如spring-content.xml、web.xml等配置文件都不見了。能夠看到的只有application.properties,它默認(rèn)內(nèi)置了一些配置,可以通過IDEA的提示功能,快速配置相應(yīng)的參數(shù),比如在文件內(nèi)入手server,則會(huì)給出如下提示:



通過提示可以看出,內(nèi)嵌tomcat默認(rèn)的端口為8080。可以通過server.port=xx,重新指定端口號(hào)。

項(xiàng)目依賴

在之前的Spring項(xiàng)目搭建我們需要了解每個(gè)功能都使用了Spring的哪些核心依賴包,然后逐一引入。使用SpringBoot便無需關(guān)注那么多。來看一下pom.xml文件內(nèi)容。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.3.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
  </parent>
  <groupId>com.example</groupId>
  <artifactId>demo</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>demo</name>
  <description>Demo project for Spring Boot</description>
 
  <properties>
    <java.version>1.8</java.version>
  </properties>
 
  <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
 
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>
 
  <build>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
    </plugins>
  </build>
 
</project>

看到pom里面的內(nèi)容是不是感覺清爽到極致了。是的,忽略掉Maven的元數(shù)據(jù)配置,其實(shí)我們僅僅引入了三部分的內(nèi)容:

parent元素,引入了spring-boot-starter-parent的依賴管理,主要提供了整體版本控制和打包等內(nèi)容;

dependencies元素中,引入了spring-boot-starter-web這個(gè)starter和單元測(cè)試的starter。

build元素中,引入了一個(gè)構(gòu)建項(xiàng)目的maven插件。

而此刻,如果打開項(xiàng)目的jar包依賴,會(huì)看到已經(jīng)引入了幾十個(gè)功能相關(guān)的jar包了。

HelloWorld

編寫一個(gè)可通過瀏覽器訪問的helloweb程序。在com.example.demo包下創(chuàng)建一個(gè)controller的包,并創(chuàng)建HelloWorldController類。

package com.example.demo.controller;
 
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
 
/**
 * @author zzs
 */
@RestController
public class HelloWorldController {
 
    @RequestMapping
    public String hello() {
        return "hello world!";
    }
}

像我們使用springmvc一樣,在controller中實(shí)現(xiàn)上面的代碼。運(yùn)行DemoApplication中的main方法啟動(dòng)項(xiàng)目,在瀏覽器輸入:http://localhost:8080/hello,頁面顯示出”helloworld!”,一個(gè)簡(jiǎn)單的rest接口請(qǐng)求便完成了。

單元測(cè)試

在DemoApplicationTests中寫一段簡(jiǎn)單的單元測(cè)試,代碼如下:

package com.example.demo;
 
import com.example.demo.controller.HelloWorldController;
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.setup.MockMvcBuilders;
 
import static org.hamcrest.core.IsEqual.equalTo;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
 
@RunWith(SpringRunner.class)
@SpringBootTest
public class DemoApplicationTests {
 
    private MockMvc mockMvc;
 
    @Before
    public void init() {
        mockMvc = MockMvcBuilders.standaloneSetup(new HelloWorldController()).build();
    }
 
    @Test
    public void testHello() throws Exception {
        mockMvc.perform(MockMvcRequestBuilders.get("/hello").accept(MediaType.APPLICATION_JSON))
                .andExpect(status().isOk())
                .andExpect(content().string(equalTo("hello world!")));
    }
}

至此,已經(jīng)完成了SpringBoot最基本的項(xiàng)目已經(jīng)完成。這里再補(bǔ)充兩條注意事項(xiàng):

1、業(yè)務(wù)代碼和新建的package一定要放在啟動(dòng)main方法的同級(jí)包下或下一級(jí)包下面,也就是說springboot的啟動(dòng)程序一定要在最頂層,否則啟動(dòng)時(shí)某些注解無法檢測(cè)到。

2、如果業(yè)務(wù)中有其他的類中有main方法,注意注釋掉或替換為單元測(cè)試的形式,因?yàn)閟pringboot在啟動(dòng)時(shí)會(huì)尋找main方法,如果存在多個(gè)在使用java-jar啟動(dòng)時(shí)會(huì)出現(xiàn)莫名其妙的問題。

以上就是關(guān)于扣丁學(xué)堂Java培訓(xùn)帶你5分鐘快速上手Spring Boot詳解整合,希望對(duì)大家有所幫助,想要學(xué)好Java開發(fā)小編給大家推薦口碑良好的扣丁學(xué)堂,扣丁學(xué)堂有專業(yè)老師制定的Java學(xué)習(xí)路線圖輔助學(xué)員學(xué)習(xí),此外還有與時(shí)俱進(jìn)的Java視頻教程供大家學(xué)習(xí),想要學(xué)好Java開發(fā)技術(shù)的小伙伴快快行動(dòng)吧??鄱W(xué)堂Java技術(shù)交流群:670348138。


扣丁學(xué)堂微信公眾號(hào)                              HTML5前端開發(fā)VIP免費(fèi)公開課

     【關(guān)注微信公眾號(hào)獲取更多學(xué)習(xí)資料】           【掃碼進(jìn)入HTML5前端開發(fā)VIP免費(fèi)公開課



查看更多關(guān)于“Java開發(fā)資訊”的相關(guān)文章>>

標(biāo)簽: Java培訓(xùn) Java視頻教程 Java多線程 Java面試題 Java學(xué)習(xí)視頻 Java開發(fā)

熱門專區(qū)

暫無熱門資訊

課程推薦

微信
微博
15311698296

全國(guó)免費(fèi)咨詢熱線

郵箱:codingke@1000phone.com

官方群:148715490

北京千鋒互聯(lián)科技有限公司版權(quán)所有   北京市海淀區(qū)寶盛北里西區(qū)28號(hào)中關(guān)村智誠(chéng)科創(chuàng)大廈4層
京ICP備2021002079號(hào)-2   Copyright ? 2017 - 2022
返回頂部 返回頂部