亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

1、掌握application.properties配置文件

2、掌握application.yaml配置文件

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

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

 一、全局配置文件概述

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

二、Application.properties配置文件

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

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

在這里插入圖片描述

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

在這里插入圖片描述

添加測試和Web依賴

在這里插入圖片描述

設(shè)置項目名稱及保存位置

在這里插入圖片描述

單擊【Finish】按鈕,完成項目初始化工作

在這里插入圖片描述

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

在這里插入圖片描述

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

在這里插入圖片描述

1、配置tomcat端口號和web虛擬路徑

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

在這里插入圖片描述

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

在這里插入圖片描述

2、對象類型的配置與使用

(1)創(chuàng)建Pet類

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

在這里插入圖片描述

package net.hw.lesson03.bean;
 
/**
 * 功能:寵物實體類
 * 作者:華衛(wèi)
 * 日期:2021年04月28日
 */
public class Pet {
    private String type; // 類型
    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類

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

在這里插入圖片描述

package net.hw.lesson03.bean;
 
import java.util.List;
import java.util.Map;
 
/**
 * 功能:人類
 * 作者:華衛(wèi)
 * 日期:2021年04月28日
 */
public class Person {
    private int id; // 編號
    private String name; // 姓名
    private List<String> hobby; // 愛好;
    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里配置對象

#配置對象
person.id=1
person.name=張三豐
person.hobby=旅游,美食,音樂
person.family.father=張云光
person.family.mother=吳文燕
person.family.grandpa=張宏宇
person.famliy.grandma=唐雨欣
person.family.son=張君寶
person.family.daughter=張曉敏
person.pet.type=泰迪犬
person.pet.name=瑞瑞

在這里插入圖片描述

(4)給Person類添加注解

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

在這里插入圖片描述

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

在這里插入圖片描述

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

(5)給Pet類添加注解

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

在這里插入圖片描述

(6)從Spring容器里獲取Person類的實例并輸出

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

在這里插入圖片描述

聲明ApplicationContext對象,并在setApplicationContext里初始化

在這里插入圖片描述

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

在這里插入圖片描述

運行測試方法testPerson(),查看結(jié)果

在這里插入圖片描述

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

使用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編碼形式

在這里插入圖片描述

運行測試方法testPerson(),查看結(jié)果

在這里插入圖片描述

(8)從Spring容器里獲取Pet類的實例并輸出

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

在這里插入圖片描述

在測試類里添加測試方法testPet()

在這里插入圖片描述

運行測試方法testPet(),查看結(jié)果

在這里插入圖片描述

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

在這里插入圖片描述

再次運行測試方法testPet(),查看結(jié)果

在這里插入圖片描述

修改application.properties,配置寵物對象

在這里插入圖片描述

再次運行測試方法testPet(),查看結(jié)果

在這里插入圖片描述

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

給Pet類的屬性添加值注解@Value

在這里插入圖片描述

再次運行測試方法testPet(),查看結(jié)果

在這里插入圖片描述

3、兩種屬性注解方式的對比

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

三、Application.yaml配置文件

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

在這里插入圖片描述

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

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

在這里插入圖片描述

配置服務(wù)器屬性

在這里插入圖片描述

配置person對象屬性

在這里插入圖片描述

配置pet對象屬性

在這里插入圖片描述

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

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

3、運行測試方法testPerson(),查看結(jié)果

在這里插入圖片描述

4、運行測試方法testPet(),查看結(jié)果

在這里插入圖片描述

四、兩種配置文件的比較

1、application.properties配置文件

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

2、application.yaml配置文件

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

五、課后作業(yè)

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

在這里插入圖片描述

創(chuàng)建學(xué)生實體類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對象屬性

在這里插入圖片描述

  • 修改控制器StudentInfoController,student()方法里返回student的值
  • 運行啟動類

在這里插入圖片描述

在瀏覽器里訪問http://localhost:8080/student

在這里插入圖片描述

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

相關(guān)文章

  • SVN導(dǎo)入maven項目報錯解決方案

    SVN導(dǎo)入maven項目報錯解決方案

    這篇文章主要介紹了SVN導(dǎo)入maven項目報錯解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-12-12
  • Java集合教程之Collection實例詳解

    Java集合教程之Collection實例詳解

    集合,或者叫容器,是一個包含多個元素的對象,下面這篇文章主要給大家介紹了關(guān)于Java集合教程之Collection的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2018-08-08
  • MyBatis-plus中的模糊查詢解讀

    MyBatis-plus中的模糊查詢解讀

    這篇文章主要介紹了MyBatis-plus中的模糊查詢解讀,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • java使用elasticsearch分組進(jìn)行聚合查詢過程解析

    java使用elasticsearch分組進(jìn)行聚合查詢過程解析

    這篇文章主要介紹了java使用elasticsearch分組進(jìn)行聚合查詢過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-02-02
  • SpringBoot使用Prometheus實現(xiàn)監(jiān)控

    SpringBoot使用Prometheus實現(xiàn)監(jiān)控

    在當(dāng)今的軟件開發(fā)世界中,監(jiān)控是至關(guān)重要的一部分,本文主要介紹了如何在Spring Boot應(yīng)用程序中使用Prometheus進(jìn)行監(jiān)控,以幫助大家更好地理解和管理您的應(yīng)用程序,有需要的可以參考下
    2023-10-10
  • 原來Java中有兩個ArrayList

    原來Java中有兩個ArrayList

    原來Java中有兩個ArrayList,本文就帶著大家一起探究Java中的ArrayList,感興趣的小伙伴們可以參考一下
    2016-01-01
  • Gateway集成Netty服務(wù)的配置加載詳解

    Gateway集成Netty服務(wù)的配置加載詳解

    這篇文章主要為大家介紹了Gateway集成Netty服務(wù)的配置加載詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • Java AOP動態(tài)代理詳細(xì)介紹

    Java AOP動態(tài)代理詳細(xì)介紹

    AOP是一種設(shè)計思想,是軟件設(shè)計領(lǐng)域中的面向切面編程,它是面向?qū)ο缶幊痰囊环N補充和完善。本文將用Java實現(xiàn)AOP代理的三種方式,需要的可以參考一下
    2022-08-08
  • Java延時執(zhí)行的三種實現(xiàn)方式

    Java延時執(zhí)行的三種實現(xiàn)方式

    本文主要介紹了Java延時執(zhí)行的三種實現(xiàn)方式,主要包括了Thread.sleep()方法,.sleep()使用Timer類或使用ScheduledExecutorService接口,感興趣的可以了解一下
    2023-12-12
  • Java Restful API的攔截詳解

    Java Restful API的攔截詳解

    這篇文章主要介紹了Java 調(diào)用Restful API接口的攔截,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2021-09-09

最新評論