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

Spring Boot兩種全局配置和兩種注解的操作方法

 更新時(shí)間:2021年06月29日 11:08:03   作者:aqaerw  
Spring Boot使用一個(gè)application.properties或者application.yaml的文件作為全局配置文件,本文重點(diǎn)給大家介紹Spring Boot兩種全局配置和兩種注解的配置方法,感興趣的朋友一起看看吧

零、學(xué)習(xí)目標(biāo)

1、掌握application.properties配置文件

2、掌握application.yaml配置文件

3、掌握使用@ConfigurationProperties注入屬性

4、掌握使用@Value注入屬性

 一、全局配置文件概述

全局配置文件能夠?qū)σ恍┠J(rèn)配置值進(jìn)行修改。Spring Boot使用一個(gè)application.properties或者application.yaml的文件作為全局配置文件,該文件存放在src/main/resource目錄或者類(lèi)路徑的/config,一般會(huì)選擇resource目錄。

二、Application.properties配置文件

(一)創(chuàng)建Spring Boot的Web項(xiàng)目PropertiesDemo

利用Spring Initializr方式創(chuàng)建項(xiàng)目

在這里插入圖片描述

設(shè)置項(xiàng)目元數(shù)據(jù)

在這里插入圖片描述

添加測(cè)試和Web依賴(lài)

在這里插入圖片描述

設(shè)置項(xiàng)目名稱(chēng)及保存位置

在這里插入圖片描述

單擊【Finish】按鈕,完成項(xiàng)目初始化工作

在這里插入圖片描述

設(shè)置項(xiàng)目編碼為utf8

在這里插入圖片描述

(二)在application.properties里添加相關(guān)配置 點(diǎn)開(kāi)resource目錄,查看應(yīng)用程序?qū)傩耘渲梦募?/p>

在這里插入圖片描述

1、配置tomcat端口號(hào)和web虛擬路徑

#修改tomcat默認(rèn)端口號(hào)
server.port=8888
#修改web虛擬路徑
server.servlet.context-path=/lzy

在這里插入圖片描述

更多配置屬性,詳見(jiàn)官網(wǎng)https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html啟動(dòng)應(yīng)用,查看控制臺(tái)

在這里插入圖片描述

2、對(duì)象類(lèi)型的配置與使用

(1)創(chuàng)建Pet類(lèi)

在net.hw.lesson03里創(chuàng)建bean子包,在子包里創(chuàng)建Pet類(lèi)

在這里插入圖片描述

package net.hw.lesson03.bean;
 
/**
 * 功能:寵物實(shí)體類(lèi)
 * 作者:華衛(wèi)
 * 日期:2021年04月28日
 */
public class Pet {
    private String type; // 類(lèi)型
    private String name; // 名字
 
    public String getType() {
        return type;
    }
 
    public void setType(String type) {
        this.type = type;
    }
 
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
    @Override
    public String toString() {
        return "Pet{" +
                "type='" + type + '\'' +
                ", name='" + name + '\'' +
                '}';
    }
}

(2)創(chuàng)建Person類(lèi)

在net.hw.lesson03.bean包里創(chuàng)建Person類(lèi)

在這里插入圖片描述

package net.hw.lesson03.bean;
 
import java.util.List;
import java.util.Map;
 
/**
 * 功能:人類(lèi)
 * 作者:華衛(wèi)
 * 日期:2021年04月28日
 */
public class Person {
    private int id; // 編號(hào)
    private String name; // 姓名
    private List<String> hobby; // 愛(ài)好;
    private Map<String, String> family; // 家庭成員
    private Pet pet; // 寵物
 
    public int getId() {
        return id;
    }
 
    public void setId(int id) {
        this.id = id;
    }
 
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
    public List<String> getHobby() {
        return hobby;
    }
 
    public void setHobby(List<String> hobby) {
        this.hobby = hobby;
    }
 
    public Map<String, String> getFamily() {
        return family;
    }
 
    public void setFamily(Map<String, String> family) {
        this.family = family;
    }
 
    public Pet getPet() {
        return pet;
    }
 
    public void setPet(Pet pet) {
        this.pet = pet;
    }
 
    @Override
    public String toString() {
        return "Person{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", hobby=" + hobby +
                ", family=" + family +
                ", pet=" + pet +
                '}';
    }
}

(3)在application.properties里配置對(duì)象

#配置對(duì)象
person.id=1
person.name=張三豐
person.hobby=旅游,美食,音樂(lè)
person.family.father=張?jiān)乒?
person.family.mother=吳文燕
person.family.grandpa=張宏宇
person.famliy.grandma=唐雨欣
person.family.son=張君寶
person.family.daughter=張曉敏
person.pet.type=泰迪犬
person.pet.name=瑞瑞

在這里插入圖片描述

(4)給Person類(lèi)添加注解

添加注解@Component,交給Spring去管理

在這里插入圖片描述

添加注解@ConfigurationProperties(prefix = “person”)

在這里插入圖片描述

注意:采用@ConfigurationProperties注解方式,必須要有set方法,才會(huì)自動(dòng)為Person類(lèi)所有屬性注入相應(yīng)的值,包括簡(jiǎn)單類(lèi)型和復(fù)雜類(lèi)型

(5)給Pet類(lèi)添加注解

  • 添加注解@Component,交給Spring去管理
  • 添加注解@ConfigurationProperties(prefix = “person.pet”) - 可以不用添加

在這里插入圖片描述

(6)從Spring容器里獲取Person類(lèi)的實(shí)例并輸出

實(shí)現(xiàn)接口ApplicationContextAware,實(shí)現(xiàn)其抽象方法setApplicationContext

在這里插入圖片描述

聲明ApplicationContext對(duì)象,并在setApplicationContext里初始化

在這里插入圖片描述

創(chuàng)建測(cè)試方法testPerson(),從Spring容器中獲取Person類(lèi)的實(shí)例并輸出

在這里插入圖片描述

運(yùn)行測(cè)試方法testPerson(),查看結(jié)果

在這里插入圖片描述

(7)解決輸出結(jié)果的漢字亂碼問(wèn)題

使用JDK工具native2ascii.exe將漢字處理成uncode編碼

在這里插入圖片描述

D:\IdeaProjects\PropertiesDemo>cd src/main/resources
 
D:\IdeaProjects\PropertiesDemo\src\main\resources>native2ascii -encoding utf8 application.properties
#\u4fee\u6539tomcat\u9ed8\u8ba4\u7aef\u53e3\u53f7
server.port=8888
#\u4fee\u6539web\u865a\u62df\u8def\u5f84
server.servlet.context-path=/lzy
 
#\u914d\u7f6e\u5bf9\u8c61
person.id=1
person.name=\u5f20\u4e09\u4e30
person.hobby=\u65c5\u6e38,\u7f8e\u98df,\u97f3\u4e50
person.family.father=\u5f20\u4e91\u5149
person.family.mother=\u5434\u6587\u71d5
person.family.grandpa=\u5f20\u5b8f\u5b87
person.famliy.grandma=\u5510\u96e8\u6b23
person.family.son=\u5f20\u541b\u5b9d
person.family.daughter=\u5f20\u6653\u654f
person.pet.type=\u6cf0\u8fea\u72ac
person.pet.name=\u745e\u745e
 
D:\IdeaProjects\PropertiesDemo\src\main\resources>

修改application.properties文件,漢字采用unicode編碼形式

在這里插入圖片描述

運(yùn)行測(cè)試方法testPerson(),查看結(jié)果

在這里插入圖片描述

(8)從Spring容器里獲取Pet類(lèi)的實(shí)例并輸出

查看Pet類(lèi)的注解,有配置屬性的注解@ConfigurationProperties(prefix = "person.pet")

在這里插入圖片描述

在測(cè)試類(lèi)里添加測(cè)試方法testPet()

在這里插入圖片描述

運(yùn)行測(cè)試方法testPet(),查看結(jié)果

在這里插入圖片描述

注釋掉Pet類(lèi)的配置屬性的注解@ConfigurationProperties(prefix = "person.pet")

在這里插入圖片描述

再次運(yùn)行測(cè)試方法testPet(),查看結(jié)果

在這里插入圖片描述

修改application.properties,配置寵物對(duì)象

在這里插入圖片描述

再次運(yùn)行測(cè)試方法testPet(),查看結(jié)果

在這里插入圖片描述

大家可以看到,寵物對(duì)象的屬性依然沒(méi)有被注入,下面我們換一種屬性注解的方式,采用@Value注解方式。

給Pet類(lèi)的屬性添加值注解@Value

在這里插入圖片描述

再次運(yùn)行測(cè)試方法testPet(),查看結(jié)果

在這里插入圖片描述

3、兩種屬性注解方式的對(duì)比

  •  采用@ConfigurationProperties注解方式,必須要有set方法,才會(huì)自動(dòng)為所注解的類(lèi)的全部屬性注入相應(yīng)的值,包括簡(jiǎn)單類(lèi)型和復(fù)雜類(lèi)型(List、Map、Pet……)。
  • 采用@Value注解方式,優(yōu)點(diǎn)在于可以不要set方法,但是有兩點(diǎn)不足:其一、需要一個(gè)一個(gè)地注入,顯得麻煩;其二、對(duì)于復(fù)雜類(lèi)型不能注入,比如Map、List、Pet等。

三、Application.yaml配置文件

1、備份application.properties文件 文件更名為application.back,即讓此文件不起作用

在這里插入圖片描述

2、在resoures目錄里創(chuàng)建application.yaml文件

創(chuàng)建application.yaml文件

在這里插入圖片描述

配置服務(wù)器屬性

在這里插入圖片描述

配置person對(duì)象屬性

在這里插入圖片描述

配置pet對(duì)象屬性

在這里插入圖片描述

查看application.yaml文件內(nèi)容

#配置服務(wù)器
server:
  port: 8888
  servlet:
    context-path: /lzy
 
#配置person對(duì)象
person:
  id: 1
  name: 張三豐
  hobby:
    旅游
    美食
    音樂(lè)
  family: {
       father: 張?jiān)乒?
       mother: 吳文燕,
       grandpa: 張宏宇,
       grandma: 唐雨欣,
       son: 張君寶,
       daughter: 張曉敏
    }
  pet:
    type: 泰迪犬
    name: 瑞瑞
 
#配置pet對(duì)象
pet:
  type: 泰迪犬
  name: 瑞瑞

3、運(yùn)行測(cè)試方法testPerson(),查看結(jié)果

在這里插入圖片描述

4、運(yùn)行測(cè)試方法testPet(),查看結(jié)果

在這里插入圖片描述

四、兩種配置文件的比較

1、application.properties配置文件

  • 采用XML語(yǔ)法,鍵值對(duì):鍵=值,沒(méi)有層次結(jié)構(gòu)
  • 如果值里有漢字,必須得轉(zhuǎn)成unicode,否則會(huì)出現(xiàn)亂碼問(wèn)題

2、application.yaml配置文件

  • 采用YAML語(yǔ)法,鍵值對(duì):鍵: 值(冒號(hào)與值之間有空格),具有層次結(jié)構(gòu)
  • 允許值里有漢字,不必轉(zhuǎn)成unicode,也不會(huì)出現(xiàn)亂碼問(wèn)題

五、課后作業(yè)

任務(wù):修改StudentInfo項(xiàng)目輸出學(xué)生信息

在這里插入圖片描述

創(chuàng)建學(xué)生實(shí)體類(lèi)Student

在這里插入圖片描述

添加屬性

private String id;
private String name;
private String gender;
private int age;
private String major;
private String telephone;
private String email;
private String hobby;
  • 添加getter和setter
  • 添加toString()方法
  • 添加注解@Component
  • 添加注解@ConfigureProperties
  • 將application.properties更名為application.yaml

在這里插入圖片描述

配置student對(duì)象屬性

在這里插入圖片描述

  • 修改控制器StudentInfoController,student()方法里返回student的值
  • 運(yùn)行啟動(dòng)類(lèi)

在這里插入圖片描述

在瀏覽器里訪問(wèn)http://localhost:8080/student

在這里插入圖片描述

到此這篇關(guān)于Spring Boot兩種全局配置和兩種注解的文章就介紹到這了,更多相關(guān)Spring Boot配置注解內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Mybatis-plus出現(xiàn)數(shù)據(jù)庫(kù)id很大或者為負(fù)數(shù)的解決

    Mybatis-plus出現(xiàn)數(shù)據(jù)庫(kù)id很大或者為負(fù)數(shù)的解決

    本文主要介紹了Mybatis-plus出現(xiàn)數(shù)據(jù)庫(kù)id很大或者為負(fù)數(shù)的解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • Java 提取照片的EXIF信息批量重命名

    Java 提取照片的EXIF信息批量重命名

    這篇文章主要介紹了Java 提取照片的EXIF信息批量重命名的方法,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下
    2021-04-04
  • Java使用Poi導(dǎo)出Excel表格方法實(shí)例

    Java使用Poi導(dǎo)出Excel表格方法實(shí)例

    這篇文章主要給大家介紹了關(guān)于Java使用Poi導(dǎo)出Excel表格的相關(guān)資料,Java POI是一個(gè)用于操作Microsoft Office格式的Java API庫(kù),可以使用它來(lái)導(dǎo)出Excel文件,需要的朋友可以參考下
    2023-10-10
  • Java使用Scala實(shí)現(xiàn)尾遞歸優(yōu)化來(lái)解決爆棧問(wèn)題

    Java使用Scala實(shí)現(xiàn)尾遞歸優(yōu)化來(lái)解決爆棧問(wèn)題

    Scala?作為一種多范式的編程語(yǔ)言,結(jié)合了面向?qū)ο蠛秃瘮?shù)式編程的特性,在?Scala?中,尾遞歸?是通過(guò)編譯器優(yōu)化來(lái)防止棧溢出問(wèn)題的,尾遞歸優(yōu)化是一種特殊的優(yōu)化方式,可以讓遞歸調(diào)用不使用新的棧幀,所以本文介紹了在Java項(xiàng)目中如何使用Scala實(shí)現(xiàn)尾遞歸優(yōu)化來(lái)解決爆棧問(wèn)題
    2024-10-10
  • spring-data-jpa實(shí)現(xiàn)增刪改查以及分頁(yè)操作方法

    spring-data-jpa實(shí)現(xiàn)增刪改查以及分頁(yè)操作方法

    下面小編就為大家分享一篇spring-data-jpa實(shí)現(xiàn)增刪改查以及分頁(yè)操作方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-02-02
  • 淺談java中的訪問(wèn)修飾符

    淺談java中的訪問(wèn)修飾符

    這篇文章介紹了java中的訪問(wèn)修飾符,有需要的朋友可以參考一下
    2013-10-10
  • spring MVC中接口參數(shù)解析的過(guò)程詳解

    spring MVC中接口參數(shù)解析的過(guò)程詳解

    這篇文章主要給大家介紹了關(guān)于spring MVC中接口參數(shù)解析的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用spring mvc具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-07-07
  • mybatis整合springboot報(bào)BindingException:Invalid?bound?statement?(not?found)異常解決

    mybatis整合springboot報(bào)BindingException:Invalid?bound?stateme

    這篇文章主要給大家介紹了關(guān)于mybatis整合springboot報(bào)BindingException:Invalid?bound?statement?(not?found)異常的解決辦法,這個(gè)錯(cuò)誤通常是由于Mapper文件中的statement?id與Java代碼中的方法名不一致導(dǎo)致的,需要的朋友可以參考下
    2024-01-01
  • 帶你了解Java數(shù)據(jù)結(jié)構(gòu)和算法之二叉樹(shù)

    帶你了解Java數(shù)據(jù)結(jié)構(gòu)和算法之二叉樹(shù)

    這篇文章主要為大家介紹了Java數(shù)據(jù)結(jié)構(gòu)和算法之二叉樹(shù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-01-01
  • 2018年java技術(shù)面試題整理

    2018年java技術(shù)面試題整理

    小編為大家整理了2018年最新的關(guān)于java技術(shù)相關(guān)的面試題,以及給出了最簡(jiǎn)簡(jiǎn)答方式,學(xué)習(xí)下吧。
    2018-02-02

最新評(píng)論

巴林左旗| 仙桃市| 安远县| 娄底市| 子洲县| 沅江市| 巴南区| 舒城县| 双牌县| 同心县| 苗栗县| 孝义市| 刚察县| 罗平县| 肃宁县| 华容县| 石门县| 衡山县| 库车县| 伊宁市| 保定市| 厦门市| 北海市| 阿坝县| 临沭县| 丰城市| 司法| 登封市| 临湘市| 兴安盟| 封丘县| 广昌县| 乌兰浩特市| 个旧市| 昭通市| 乡城县| 临沧市| 县级市| 衡山县| 富蕴县| 南京市|