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

SpringBoot實(shí)戰(zhàn)教程之新手入門篇

 更新時(shí)間:2022年03月14日 11:42:30   作者:qchery  
Spring Boot使我們更容易去創(chuàng)建基于Spring的獨(dú)立和產(chǎn)品級的可以"即時(shí)運(yùn)行"的應(yīng)用和服務(wù),下面這篇文章主要給大家介紹了關(guān)于SpringBoot實(shí)戰(zhàn)教程之入門篇的相關(guān)資料,需要的朋友可以參考下

1. SpringBoot 簡介

Spring Boot 是由 Pivotal 團(tuán)隊(duì)提供的全新框架,其設(shè)計(jì)目的是用來簡化 Spring 應(yīng)用的初始搭建以及開發(fā)過程。該框架使用了特定的方式來進(jìn)行配置,從而使開發(fā)人員不再需要定義樣板化的配置。Spring Boot 可以輕松創(chuàng)建一個(gè)基于 Spring 且獨(dú)立運(yùn)行的生產(chǎn)級應(yīng)用。

2. SpringBoot 安裝

SpringBoot 的安裝有很多種方式,最簡單的一種是直接將 spring-boot-*.jar 等文件添加到工程的 classpath 下,這種你就可以運(yùn)行并調(diào)試你的應(yīng)用了。如果是企業(yè)級應(yīng)用,推薦使用構(gòu)建工具來管理項(xiàng)目的依賴,比如:Maven 或者 Gradle 等。對于直接添加 classpath 的方式,這里不做多余的介紹,下面主要描述基于構(gòu)建工具的安裝指導(dǎo)。

2.1. 基于 Maven 的安裝

Spring Boot 與 Apache Maven 3.2兼容。如果你還沒有安裝 Maven,可以按照 maven.apache.org 上的說明進(jìn)行操作。

Spring Boot 依賴使用 org.springframework.boot 作為 groupId。通常情況下,你的 POM 文件會(huì)繼承 spring-boot-starter-parent 工程,然后再聲明一個(gè)或多個(gè) Starters 的依賴。Spring Boot 同時(shí)也提供了一個(gè)可選的Maven 插件用來生成可執(zhí)行的 Jar 包。

典型的 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>
    <groupId>com.example</groupId>
    <artifactId>myproject</artifactId>

    <!-- 繼承 Spring Boot 的默認(rèn)值 -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.3.RELEASE</version>
    </parent>

    <!-- 為 Web 應(yīng)用添加能用依賴 -->
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

    <!-- 打包成一個(gè)可執(zhí)行 jar 包 -->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

提示:

spring-boot-starter-parent 是使用 Spring Boot 的一種比較好的方式,但它并不適用于所有場景。有時(shí),你可能需要繼承一個(gè)不同的父級 Pom,或者你不喜歡這種默認(rèn)的配置。你也可以通過聲明一個(gè) scope=import 的依賴來使用它:

<dependencyManagement>
     <dependencies>
        <dependency>
            <!-- 從 Spring Boot 導(dǎo)入依賴管理 -->
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>1.5.3.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

2.2. 基于 Gradle 的安裝

相對 Maven 龐大的 XML 配置,我更喜歡 Gradle 多一點(diǎn),不但簡潔而且靈活性也好很多。Spring Boot 與 Gradle(2.9或以上)、Gradle 3兼容。如果你還沒有安裝 Gradle,你可以按照 www.gradle.org 上的操作說明來進(jìn)行安裝。

典型的 build.gradle 文件:

plugins {
    id 'org.springframework.boot' version '1.5.3.RELEASE'
    id 'java'
}
jar {
    baseName = 'myproject' version = '0.0.1-SNAPSHOT'
}
repositories {
    jcenter()
    maven { url "http://maven.aliyun.com/nexus/content/groups/public/" }
}
dependencies { 
    compile("org.springframework.boot:spring-boot-starter-web")
    testCompile("org.springframework.boot:spring-boot-starter-test")
}

3. 創(chuàng)建 HelloWorld 應(yīng)用

創(chuàng)建一個(gè)簡單的 Java 類如下:

import org.springframework.boot.*;
import org.springframework.boot.autoconfigure.*;
import org.springframework.stereotype.*;
import org.springframework.web.bind.annotation.*;

@RestController
@EnableAutoConfiguration
public class Example {

    @RequestMapping("/")
    String home() {
        return "Hello World!";
    }

    public static void main(String[] args) throws Exception {
        SpringApplication.run(Example.class, args);
    }

}

Example 類上的第一個(gè)注解 @RestController 是 @Controller 及 @ResponseBody 的組合,表明這是一個(gè)控制器,且所有響應(yīng)數(shù)據(jù)都會(huì)被序列化到響應(yīng)體里面返回。而方法上的 @RequestMapping 注解會(huì)為請求處理提供路由信息。這些注解都是 Spring 的,而不是 Spring Boot 特有的。

類上的第二個(gè)注解 @EnableAutoConfiguration 會(huì)告訴 Spring Boot 去通過依賴的 Jar 包配置 Spring 工程。因?yàn)?spring-boot-starter-web 里面包含有 Tomcat 及 Spring MVC,所以它會(huì)認(rèn)為這是一個(gè) Web 工程,并進(jìn)行相應(yīng)的 Spring 配置。

應(yīng)用的最后一部分是一個(gè) main 方法,它通過調(diào)用 SpringApplication 的 run 方法將應(yīng)用程序委托給 Spring Boot。SpringApplication 將引導(dǎo)我們的應(yīng)用程序啟動(dòng) Spring 及自動(dòng)配置的 Tomcat Web 服務(wù)。我們需要將 Example.class 作為一個(gè)參數(shù)傳遞給 run 方法來告訴 SpringApplication 它是主要的 Spring 組件。

運(yùn)行 main 方法后,即可以使用瀏覽器打開地址 localhost:8080 會(huì)得到輸出:

Hello World!

4. 代碼結(jié)構(gòu)

一般的應(yīng)用都會(huì)使用 域名的反轉(zhuǎn) + 項(xiàng)目名 作為項(xiàng)目的統(tǒng)一包名前綴。如:com.qchery.funda。在 SpringBoot 的項(xiàng)目中,推薦使用如下布局:

com
 +- qchery
     +- funda
         +- Application.java
         |
         +- entity
         |   +- Customer.java
         |
         +- dao
         |   +- CustomerRepository.java
         |
         +- service
         |   +- CustomerService.java
         |
         +- web
             +- CustomerController.java

其中,Application.java 文件如下:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

@Configuration
@EnableAutoConfiguration
@ComponentScan
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

}

一般來說,我們會(huì)將 @EnableAutoConfiguration 注解放置在 主類上,也就是上面結(jié)構(gòu)中的 Application.java。它隱式定義了包含某些搜索項(xiàng)的搜索包,例如,如果你正編寫一個(gè) JPA 的應(yīng)用程序,那么帶 @EnableAutoConfiguration 注解的類將會(huì)被用來搜索帶有 @Entity 的類。

而 @ComponentScan 會(huì)用來自動(dòng)掃描相應(yīng)組件,由于 Application.java 是的根包名下,所以它不需要聲明 basePackage 去指定需要掃描的包,默認(rèn)為根包名,即:com.qchery.funda。

5. Configuration 類

SpringBoot 同時(shí)支持 Java-based 配置及 XML 文件配置。但推薦使用 Java-based 形式的配置,如果現(xiàn)在的系統(tǒng)中已經(jīng)存在一些 XML 形式的配置,建議使用相同效果的 Java-based 配置進(jìn)行替換,你可以通過搜索 Enable* 來查找對應(yīng)的 Java-based 配置。

5.1. 導(dǎo)入其它配置

在 SpringBoot 工程里面,我們不需要把所有的配置放置到一個(gè)類文件里面。它的 @Import 注解可以幫助我們導(dǎo)入其它的配置類,如果想要導(dǎo)入 XML 形式的配置,可以使用 @ImportResource 注解。另外,還可以使用 @ComponentScan 注解去掃描所有帶有 @Configuration 注解的類。

6. 自動(dòng)化配置

當(dāng)你在某一個(gè)帶有 @Configuration 的類里加上 @EnableAutoConfiguration 或 @SpringBootApplication 注解時(shí),SpringBoot 會(huì)根據(jù)所添加的依賴包自動(dòng)完成項(xiàng)目配置。例如,如果你在類路徑下添加 HSQLDB 的包,但你沒有配置任何數(shù)據(jù)庫屬性,SpringBoot 會(huì)自動(dòng)配置一個(gè) In-Memory 數(shù)據(jù)庫。其中 @EnableAutoConfiguration 只能添加一個(gè)類上,建議將其加在主要的 @Configuration 類上。

6.1. 逐漸替換自動(dòng)化配置

自動(dòng)化配置并不是侵入式的,在任何地方你都可以通過自定義配置來替換它。例如,如果你添加自己的數(shù)據(jù)庫配置,那么默認(rèn)的嵌入式數(shù)據(jù)庫支持將會(huì)被退回。如果想要查看自動(dòng)化配置是否生效,可以在運(yùn)行程序時(shí),加上 –debug 參數(shù)進(jìn)行查看。

6.2. 禁止特定的自動(dòng)化配置

當(dāng)你發(fā)現(xiàn)自動(dòng)化配置不能按自己的意愿進(jìn)行工作的時(shí)候,可以通過 @EnableAutoConfiguration 的 exclude 屬性來禁用掉它們。

import org.springframework.boot.autoconfigure.*;
import org.springframework.boot.autoconfigure.jdbc.*;
import org.springframework.context.annotation.*;

@Configuration
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
public class MyConfiguration {
}

7. 使用 @SpringBootApplication 注解

由于大多數(shù)情況下,@Configuration,@EnableAutoConfiguration 及 @ComponentScan 注解都是一起使用的。SpringBoot 提供了 @SpringBootApplication 這個(gè)更加方便的選擇,它等同于前三個(gè)注解。

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication // 等同于 @Configuration @EnableAutoConfiguration @ComponentScan
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

}

項(xiàng)目的 github 地址:https://github.com/qchery/funda

總結(jié)

到此這篇關(guān)于SpringBoot實(shí)戰(zhàn)教程之新手入門篇的文章就介紹到這了,更多相關(guān)SpringBoot入門篇內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • spring cloud 配置中心native配置方式

    spring cloud 配置中心native配置方式

    這篇文章主要介紹了spring cloud 配置中心native配置方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • java自定義線程池的原理簡介

    java自定義線程池的原理簡介

    這篇文章主要介紹了java自定義線程池的原理詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • selenium + ChromeDriver安裝及使用方法

    selenium + ChromeDriver安裝及使用方法

    這篇文章主要介紹了selenium + ChromeDriver安裝及使用方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-06-06
  • springMVC前臺傳數(shù)組類型,后臺用list類型接收實(shí)例代碼

    springMVC前臺傳數(shù)組類型,后臺用list類型接收實(shí)例代碼

    這篇文章主要介紹了springMVC前臺傳數(shù)組類型,后臺用list類型接收實(shí)例代碼,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12
  • Java中的Optional類詳細(xì)解讀

    Java中的Optional類詳細(xì)解讀

    這篇文章主要介紹了Java中的Optional類詳細(xì)解讀,Optional是Java中的一個(gè)類,它的作用是用于解決空指針異常的問題,它提供了一些有用的方法,可以幫助我們避免顯式進(jìn)行空值檢測,需要的朋友可以參考下
    2023-08-08
  • Spring?IOC?xml方式進(jìn)行工廠Bean操作詳解

    Spring?IOC?xml方式進(jìn)行工廠Bean操作詳解

    這篇文章主要介紹了Spring?IOC?xml方式進(jìn)行工廠Bean操作,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2023-01-01
  • SpringBoot整合Quartz實(shí)現(xiàn)定時(shí)任務(wù)詳解

    SpringBoot整合Quartz實(shí)現(xiàn)定時(shí)任務(wù)詳解

    這篇文章主要介紹了Java?任務(wù)調(diào)度框架?Quartz,Quartz是OpenSymphony開源組織在Job?scheduling領(lǐng)域又一個(gè)開源項(xiàng)目,完全由Java開發(fā),可以用來執(zhí)行定時(shí)任務(wù),類似于java.util.Timer。,下面我們來學(xué)習(xí)一下關(guān)于?Quartz更多的詳細(xì)內(nèi)容,需要的朋友可以參考一下
    2022-08-08
  • Mybatis中返回Map的實(shí)現(xiàn)

    Mybatis中返回Map的實(shí)現(xiàn)

    這篇文章主要介紹了Mybatis中返回Map的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Git設(shè)置和取消代理的方法

    Git設(shè)置和取消代理的方法

    今天小編就為大家分享一篇關(guān)于Git設(shè)置和取消代理的方法,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • 值得收藏的2017年Java開發(fā)崗位面試題

    值得收藏的2017年Java開發(fā)崗位面試題

    這篇文章主要為大家推薦一份值得收藏的2017年Java開發(fā)崗位面試題,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08

最新評論