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

SpringBoot中的yaml語(yǔ)法及靜態(tài)資源訪問(wèn)問(wèn)題

 更新時(shí)間:2021年07月30日 09:03:53   作者:xbhog  
這篇文章主要介紹了SpringBoot中的yaml語(yǔ)法及靜態(tài)資源訪問(wèn)問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

配置文件-yaml

在spring Boot開(kāi)發(fā)中推薦使用yaml來(lái)作為配置文件。

基本語(yǔ)法:

  • key: value;kv之間有空格
  • 大小寫敏感
  • 使用縮進(jìn)表示層級(jí)關(guān)系
  • 縮進(jìn)不允許使用tab,只允許空格
  • 縮進(jìn)的空格數(shù)不重要,只要相同層級(jí)的元素左對(duì)齊即可
  • '#'表示注釋
  • 字符串無(wú)需加引號(hào),如果要加,''與""表示字符串內(nèi)容 會(huì)被 轉(zhuǎn)義/不轉(zhuǎn)義

數(shù)據(jù)類型:

可以使用的數(shù)據(jù)類型有date\boolean\string\number\null

單個(gè)字面量:

k: v   #k:空格v

對(duì)象,鍵值對(duì)的集合,包括:map、hash、set、object

普通寫法:

k:
 k1: v1
 k2: v2
 k3: v3

行內(nèi)寫法

k: {k1: v1,k2: v2,k3: v3}

數(shù)組:一組按次序排列的值。array、list、queue

普通寫法:

k:
 - v1
 - v2
 - v3

行內(nèi)寫法

k: [v1,v2,v3]

編寫之前,我需要配置yaml中的提示插件:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
    <optional>true</optional>
</dependency>

如果在打包的時(shí)候不需要打包該插件,可以在插件中設(shè)置如下:

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
        <excludes>
            <exclude>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-configuration-processor</artifactId>
            </exclude>
        </excludes>
    </configuration>
</plugin>

安裝完成后,需要啟動(dòng)一下項(xiàng)目,讓他生效。

實(shí)例:

Person類:

@Data
@Component
@ConfigurationProperties(prefix = "person")
public class Person {
    private String userName;
    private Boolean boss;
    private Date birth;
    private Integer age;
    private Pet pet;
    private String[] interests;
    private List<String> animal;
    private Map<String, Object> score;
    private Set<Double> salarys;
    private Map<String, List<Pet>> allPets;
}

Pet類:

@Data
public class Pet {
    private String name;
    private Double weight;
}

在recources資源目錄下創(chuàng)建application.yaml文件,使用yaml表示上述的屬性:

person:
  user-name: xbhog
  boss: false
  birth: 2021/7/27
  age: 18
  pet: {name: 阿毛,weight: 23}
  interests: [唱歌,跳舞,玩游戲]
  animal:
    - jerry
    - mario
  score:
    english: 30
    math: 70
 #第二種寫法:score: {english: 30,math: 70}
  salarys:
    - 277
    - 8999
    - 10000
  all-pets: #該allPet有兩個(gè)k(sick、health),每個(gè)key包含一個(gè)list
    sick: 
      - {name: tom}
      - {name: jerry,weight:47}
    health: [{name: mario,weight: 47}]

創(chuàng)建一個(gè)controller來(lái)測(cè)試我們的配置文件有沒(méi)有生效:

因?yàn)槲覀冎耙褜erson中的屬性映射到了application.yaml文件中,并且把person加入到容器中。

@Component
@ConfigurationProperties(prefix = "person")

所以我們?cè)趍yconfig中做測(cè)試:

package com.xbhog.controller;

import com.xbhog.popj.Car;
import com.xbhog.popj.Person;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class MyController {
    @Autowired   //自動(dòng)配置,找到容器中的person
    Person person;
    
    @RequestMapping("/person")
    public Person person(){
        return person;
    }
}

結(jié)果如圖所示:

Web開(kāi)發(fā)之簡(jiǎn)單功能分析

靜態(tài)資源的訪問(wèn)問(wèn)題

只有靜態(tài)資源放在以下的文件目錄中才可以:

/static/、public/、 resources/ 、META-INF/resources

最后一個(gè)測(cè)試沒(méi)有成功,訪問(wèn)META-INF/resources/img.png返回404,如果有感興趣的小伙伴可以測(cè)試一下。

訪問(wèn)的方法是:當(dāng)前項(xiàng)目根路徑/ + 靜態(tài)資源名 (localhost:8080/xxx.img)

假如我們的請(qǐng)求路由跟圖片的名字重復(fù)了,spring boot是先請(qǐng)求哪個(gè)呢?

我們創(chuàng)建一個(gè)controller:

package com.xbhog.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class mycontro {
    @RequestMapping("/publicimg.png")
    public String demo(){
        return "asss";
    }
}

讓它與public文件夾下面的圖片相同:

開(kāi)啟主程序測(cè)試結(jié)果如下:

當(dāng)我們隨便請(qǐng)求一個(gè)不存在的圖片,會(huì)返回給我們404.

從上面可以看出來(lái),請(qǐng)求進(jìn)來(lái),先去找Controller看能不能處理。不能處理的所有請(qǐng)求又都交給靜態(tài)資源處理器。靜態(tài)資源也找不到則響應(yīng)404頁(yè)面

改變默認(rèn)的靜態(tài)資源的路徑:

在application.yaml文件中:

spring:
  mvc:
    static-path-pattern: /res/**

這樣我們?cè)L問(wèn)資源的時(shí)候必須啊要加res前綴.

但是在歡迎頁(yè)支持和自定義Favicon上需要關(guān)掉·tatic-path-pattern.如果開(kāi)啟的話,index.html與favicon是不起效果的。

如果設(shè)置favicon設(shè)置的完后,不起作用,可以禁用下瀏覽器緩存或者重啟下idea.

設(shè)置的方式(直接放到靜態(tài)資源文件夾下即可):

直接訪問(wèn)localhost:8080即可看見(jiàn)

到此這篇關(guān)于SpringBoot之yaml語(yǔ)法及靜態(tài)資源訪問(wèn)的文章就介紹到這了,更多相關(guān)SpringBoot之yaml語(yǔ)法及靜態(tài)資源訪問(wèn) 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java類Circle定義計(jì)算圓的面積和周長(zhǎng)代碼示例

    java類Circle定義計(jì)算圓的面積和周長(zhǎng)代碼示例

    要用Java計(jì)算圓的周長(zhǎng)和面積,需要使用圓的半徑和一些數(shù)學(xué)公式,下面這篇文章主要給大家介紹了關(guān)于java類Circle定義計(jì)算圓的面積、周長(zhǎng)的相關(guān)資料,需要的朋友可以參考下
    2024-04-04
  • Netty中解碼器的作用及實(shí)現(xiàn)詳解

    Netty中解碼器的作用及實(shí)現(xiàn)詳解

    這篇文章主要介紹了Netty中解碼器的作用及實(shí)現(xiàn)詳解,本章我們只需要讓客戶端發(fā)送消息的時(shí)候循環(huán)發(fā)送100次,服務(wù)端不變,看看服務(wù)端是不是接收到了100條消息,需要的朋友可以參考下
    2023-12-12
  • 使用ftpClient下載ftp上所有文件解析

    使用ftpClient下載ftp上所有文件解析

    最近項(xiàng)目需要寫個(gè)小功能,需求就是實(shí)時(shí)下載ftp指定文件夾下的所有文件(包括子目錄)到本地文件夾中,保留文件到目錄路徑不變。今天小編給大家分享使用ftpClient下載ftp上所有文件的方法,需要的的朋友參考下吧
    2017-04-04
  • elasticsearch啟動(dòng)警告無(wú)法鎖定JVM內(nèi)存

    elasticsearch啟動(dòng)警告無(wú)法鎖定JVM內(nèi)存

    今天小編就為大家分享一篇關(guān)于elasticsearch啟動(dòng)警告無(wú)法鎖定JVM內(nèi)存,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-03-03
  • Spring如何動(dòng)態(tài)自定義logback日志目錄詳解

    Spring如何動(dòng)態(tài)自定義logback日志目錄詳解

    這篇文章主要給大家介紹了關(guān)于Spring如何動(dòng)態(tài)自定義logback日志目錄的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-10-10
  • 詳解Redis 緩存 + Spring 的集成示例

    詳解Redis 緩存 + Spring 的集成示例

    本篇文章主要介紹了Redis 緩存 + Spring 的集成示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-04-04
  • spring?boot自動(dòng)裝配之@ComponentScan注解用法詳解

    spring?boot自動(dòng)裝配之@ComponentScan注解用法詳解

    @ComponentScan的作用就是根據(jù)定義的掃描路徑,把符合掃描規(guī)則的類裝配到spring容器中,下面這篇文章主要給大家介紹了關(guān)于spring?boot自動(dòng)裝配之@ComponentScan注解用法的相關(guān)資料,需要的朋友可以參考下
    2023-04-04
  • Java GZIPOutputStream流壓縮文件的操作

    Java GZIPOutputStream流壓縮文件的操作

    這篇文章主要介紹了Java GZIPOutputStream流壓縮文件的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-02-02
  • Spring Boot之內(nèi)嵌tomcat版本升級(jí)操作示例

    Spring Boot之內(nèi)嵌tomcat版本升級(jí)操作示例

    這篇文章主要為大家介紹了Spring Boot之內(nèi)嵌tomcat版本升級(jí)操作示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • 10種簡(jiǎn)單的Java性能優(yōu)化

    10種簡(jiǎn)單的Java性能優(yōu)化

    你是否正打算優(yōu)化hashCode()方法?是否想要繞開(kāi)正則表達(dá)式?Lukas Eder介紹了很多簡(jiǎn)單方便的性能優(yōu)化小貼士以及擴(kuò)展程序性能的技巧
    2017-11-11

最新評(píng)論

沙雅县| 岳普湖县| 云南省| 平乐县| 阿合奇县| 察雅县| 永济市| 博客| 城固县| 肃宁县| 邢台市| 黄山市| 河津市| 黄平县| 武宣县| 阳城县| 东兰县| 正蓝旗| 绵竹市| 商都县| 若尔盖县| 全南县| 高雄县| 东方市| 隆尧县| 巢湖市| 汉源县| 吉林省| 阳春市| 墨玉县| 收藏| 芦溪县| 五指山市| 都匀市| 普格县| 台南县| 收藏| 定襄县| 盘山县| 林西县| 金坛市|