欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

5分鐘快速上手Spring Boot

 更新時間:2019年04月04日 11:56:41   作者:朱智勝  
這篇文章主要介紹了5分鐘快速上手Spring Boot,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

概述

與一些動態(tài)語言(如Ruby、Groovy、Node.js)相比,Java開發(fā)顯得異常笨重。接觸過外包項目的朋友也有所了解,如果要開發(fā)一個小型項目,首選的編程語言并不是Java,而是PHP。為什么呢?因為開發(fā)起來快!目前很多大型互聯(lián)網公司的早起編程語言都是類似PHP這種能夠快速開發(fā)的語言。
既然問題出現(xiàn)了,那必然有解決問題的方案,SpringBoot做到了。SpringBoot是由Pivotal公司所屬團隊研發(fā),該公司的企業(yè)宗旨為:

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

SpringBoot讓我們可以在幾分鐘內就搭建出一套項目的基礎架構,同時為我們提供了大量集成方案——starters?;凇凹s定優(yōu)于配置”的理念,減少大量的配置文件,讓項目快速、簡單的運行起來。內置web容器(如tomcat、Netty等),通過jar -jar命令即可啟動一個項目。

項目創(chuàng)建

環(huán)境要求

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

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

通過官網提供的Spring Initializr來創(chuàng)建項目。訪問官方網址:https://start.spring.io/ 。顯示內容如下:


簡單了解一下相應的參數(shù)選擇:

  1. Project:選擇項目構建的工具,采用默認的Maven;
  2. Language:選擇構建項目的語言,采用默認的Java;
  3. Spring Boot:選擇使用的SpringBoot的版本信息,采用最新版本2.1.3;
  4. Project Metadata:設置項目的元數(shù)據(jù),主要就是設置Maven相關的配置;Group,對應Maven中的GroupId,Artifact對應Maven中的ArtifactId。

打開More options會看到另外一些默認的配置:

  1. Packaging:指定打包的模式,默認采用Jar包模式,即使用java -jar啟動即可,如果需要部署到單獨的tomcat或其他web容器,則可選擇war包。
  2. Java Version:SpringBoot2.13默認支持最低JDK為8。

我們前面提到的starters的選擇就是在Dependencies中設置,在沒有輸入任何內容的時候,能夠看到該輸入欄目有對應的提示信息。當輸入web時,會動態(tài)匹配與web相關的依賴,點擊“➕”添加即可。這里選擇web的最小化配置。


當完成選擇,點擊“Generate Project”即可自動下載創(chuàng)建好的項目代碼。解壓之后,會看到是一個標準的Maven項目,使用idea等IDE引入Maven項目,自動加載依賴即可,這里不再贅述。

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

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

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


選擇Spring Initializr,展示右邊基礎配置項。我們會發(fā)現(xiàn),其實此插件進行創(chuàng)建時默認也是調用官方提供的網址進行創(chuàng)建。選擇JDK8,點擊下一步。


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

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

項目目錄結構

項目完成創(chuàng)建之后,來看一下目錄結構:


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

配置文件

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

通過提示可以看出,內嵌tomcat默認的端口為8080??梢酝ㄟ^server.port=xx,重新指定端口號。

項目依賴

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

<?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里面的內容是不是感覺清爽到極致了。是的,忽略掉Maven的元數(shù)據(jù)配置,其實我們僅僅引入了三部分的內容:

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

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

build元素中,引入了一個構建項目的maven插件。

而此刻,如果打開項目的jar包依賴,會看到已經引入了幾十個功能相關的jar包了。

HelloWorld

編寫一個可通過瀏覽器訪問的hello web程序。在com.example.demo包下創(chuàng)建一個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!";
	}
}

像我們使用spring mvc一樣,在controller中實現(xiàn)上面的代碼。運行DemoApplication中的main方法啟動項目,在瀏覽器輸入:http://localhost:8080/hello,頁面顯示出”hello world!”,一個簡單的rest接口請求便完成了。

單元測試

在DemoApplicationTests中寫一段簡單的單元測試,代碼如下:

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!")));
	}
}

注意事項

至此,已經完成了SpringBoot最基本的項目已經完成。這里再補充兩條注意事項:

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

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

項目源代碼:https://github.com/secbr/springboot-all/tree/master/demo

以上所述是小編給大家介紹的5分鐘快速上手Spring Boot詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!

相關文章

  • Java并發(fā)之ReentrantLock類源碼解析

    Java并發(fā)之ReentrantLock類源碼解析

    這篇文章主要為大家詳細介紹了Java并發(fā)系列之ReentrantLock源碼,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • Spring的事件監(jiān)聽機制示例詳解

    Spring的事件監(jiān)聽機制示例詳解

    這篇文章主要給大家介紹了關于Spring的事件監(jiān)聽機制的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-11-11
  • java web實現(xiàn)郵箱激活與忘記密碼

    java web實現(xiàn)郵箱激活與忘記密碼

    這篇文章主要為大家詳細介紹了java web實現(xiàn)郵箱激活與忘記密碼、重置密碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • SpringData如何通過@Query注解支持JPA語句和原生SQL語句

    SpringData如何通過@Query注解支持JPA語句和原生SQL語句

    這篇文章主要介紹了SpringData如何通過@Query注解支持JPA語句和原生SQL語句,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • java+selenium實現(xiàn)滑塊驗證

    java+selenium實現(xiàn)滑塊驗證

    現(xiàn)在越來越多的網站都使用采用滑塊驗證來作為驗證機制,用于判斷用戶是否為人類而不是機器人,本文就將利用java和selenium實現(xiàn)滑塊驗證,希望對大家有所幫助
    2023-12-12
  • SpringBoot整合Redis實現(xiàn)高并發(fā)數(shù)據(jù)緩存的示例講解

    SpringBoot整合Redis實現(xiàn)高并發(fā)數(shù)據(jù)緩存的示例講解

    這篇文章主要介紹了SpringBoot整合Redis實現(xiàn)高并發(fā)數(shù)據(jù)緩存,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-03-03
  • SpringBoot之配置logging日志及在控制臺中輸出過程

    SpringBoot之配置logging日志及在控制臺中輸出過程

    這篇文章主要介紹了SpringBoot之配置logging日志及在控制臺中輸出過程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • 深入理解Java 線程通信

    深入理解Java 線程通信

    這篇文章主要介紹了Java 線程通信的的相關資料,文中講解非常細致,代碼幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-06-06
  • 淺析java中Pair和Map的區(qū)別

    淺析java中Pair和Map的區(qū)別

    這篇文章主要介紹了java中Pair和Map的區(qū)別,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • Spring Cloud 配置中心內容加密的配置方法

    Spring Cloud 配置中心內容加密的配置方法

    這篇文章主要介紹了Spring Cloud 配置中心內容加密的配置方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-06-06

最新評論