首頁 > 軟體

SpringBoot常用計量與bean屬性校驗和進位制資料轉換規則全面分析

2022-10-23 18:01:26

常用計量單位

SpringBoot支援JDK8提供的時間與空間計量單位

@Data  //lombok省去get/set/toString
@ConfigurationProperties(prefix = "servers") //組態檔的位置,對應的屬性注入
public class ServerConfig {
    private String ipAddress;
    private int port;
    private String detail;
//時間
    private Duration serverTimeOut;
//儲存空間
    private DataSize dataSize;
}

組態檔中可以在之後直接加單位

servers:
 ipAddress: 192.158.0.1
 port: 1234
 detail: zhangsan
 serverTimeOut: 10s
 dataSize: 4MB

執行結果

或者不在組態檔加單位,在實體類中加註解

bean屬性校驗

開啟Bean資料校驗

①新增JSR303規範座標與Hibernate校驗框架對應座標

<!--        提供規範的介面-->
        <dependency>
            <groupId>javax.validation</groupId>
            <artifactId>validation-api</artifactId>
        </dependency>
<!--        對上面介面的實現-->
        <dependency>
            <groupId>org.hibernate.validator</groupId>
            <artifactId>hibernate-validator</artifactId>
        </dependency>

②:@Validated開啟校驗功能

③:設定校驗規則

@Data  //lombok省去get/set/toString
//@Component //交給spring容器管理
@ConfigurationProperties(prefix = "servers") //組態檔的位置,對應的屬性注入
//②開啟校驗
@Validated
public class ServerConfig {
    private String ipAddress;
//    ③設定校驗規則
@Max(value=9000,message = "最大不能超過9000")
@Min(value=100,message = "最大不能低於100")
    private int port;
    private String detail;
    private Duration serverTimeOut;
    private DataSize dataSize;
}

執行之後,當設定的校驗不在這個範圍則會報錯

小結:

啟用Bean屬性校驗

匯入JSR303與Hibernate校驗框架座標

使用@Validated註解啟用校驗功能

使用具體校驗規則規範資料校驗格式

進位制資料轉換規則

組態檔中的數位存在進位制轉換

當以0開頭,且後續為(0-7),會自動轉為八進位制

當以0x開頭,且後續為(0-9,a-f)會自動轉為十六進位制

application.yml下

mysql:
 Password1: 01234
 Password2: 0x2345
 Password3: 0187
 Password4: "01234"

test類

package com;
import com.pojo.ServerConfig;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
@SpringBootTest
class Springboot11ConfigurationApplicationTests {
    @Value("${mysql.Password1}")
    private String password1;
    @Value("${mysql.Password2}")
    private String password2;
    @Value("${mysql.Password3}")
    private String password3;
    @Value("${mysql.Password4}")
    private String password4;
    @Test
    void contextLoads() {
        System.out.println(password1);
        System.out.println(password2);
        System.out.println(password3);
        System.out.println(password4);
    }
}

執行結果:

可以看出當加上雙引號不會發生進位制轉換,所以在進行這類操作時,應當加上雙引號。當十進位制以0開頭,會到之後

yaml字面值表示式方式

到此這篇關於SpringBoot常用計量與bean屬性校驗和進位制資料轉換規則全面分析的文章就介紹到這了,更多相關SpringBoot常用計量內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com