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

SpringBoot屬性綁定與bean屬性校驗實現(xiàn)方法詳解

 更新時間:2022年11月15日 14:03:56   作者:CN丶1  
這篇文章主要介紹了SpringBoot屬性綁定與bean屬性校驗實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧

屬性綁定

屬性綁定:我們可以使用配置文件對類的屬性進行賦值綁定。

自定義類屬性綁定

我們自定義一個類,在此使用yml文件進行類屬性的綁定。

屬性綁定步驟:

1.創(chuàng)建一個類,設置字段。

public class ServiceConfig {
    private int prot;
    private String ipAddress;
    private long timeOut;

2.添加注解

@Component
@Data
@ConfigurationProperties(prefix = "servers")
public class ServiceConfig {
    private int prot;
    private String ipAddress;
    private long timeOut;

注解說明:

@Component:將此類加入Spring容器。

@Data:使用lombok快速創(chuàng)建實體類。

@ConfigurationProperties:聲明此類使用配置文件進行屬性綁定,

并且設置使用配置文件中的哪個數(shù)據(jù)。

3.配置文件設置數(shù)據(jù)

4.測試:在boot引導類中

@SpringBootApplication
public class SpringBootDemo2Application {
    public static void main(String[] args) {
        ConfigurableApplicationContext context = SpringApplication.run(SpringBootDemo2Application.class, args);
//獲取自定義類
        ServiceConfig bean = context.getBean(ServiceConfig.class);
//打印獲取的bean,查看是否成功綁定屬性
        System.out.println(bean);
    }
}

測試結果: 發(fā)現(xiàn)打印出來的數(shù)據(jù)就是我們在yml中設置的數(shù)據(jù)

第三方bean屬性匹配

說明:有時候我們的需求并不只是想要給我們自己的類進行屬性綁定,還需要給第三方的bean進行屬性綁定。

在此使用DruidDataSource作為第三方bean,為此bean進行屬性綁定。

將Druid加入spring容器。(操作前提是導入了Druid坐標)

@Bean
@ConfigurationProperties(prefix = "datasource")
public DruidDataSource dataSource(){
    DruidDataSource druid = new DruidDataSource();
    return druid;
}

yml文件中進行屬性綁定

datasource:
  username: root
  password: root
  driverClassName: com.mysql.cj.jdbc.Driver
  url: jdbc:mysql://localhost:3306/test

測試:打印第三方bean的配置數(shù)據(jù)到控制臺看效果

@SpringBootApplication
public class SpringBootDemo2Application {
    @Bean
    @ConfigurationProperties(prefix = "datasource")
    public DruidDataSource dataSource(){
        DruidDataSource druid = new DruidDataSource();
        return druid;
    }
    public static void main(String[] args) {
        ConfigurableApplicationContext context = SpringApplication.run(SpringBootDemo2Application.class, args);
        DruidDataSource bean = context.getBean(DruidDataSource.class);
        System.out.println(bean.getUsername());
        System.out.println(bean.getPassword());
        System.out.println(bean.getUrl());
        System.out.println(bean.getDriverClassName());
    }
}

測試結果:

規(guī)則-松散綁定(寬松綁定)

寬松綁定是一種特性,說的是在配置文件中的綁定屬性的數(shù)據(jù)時,屬性名的書寫規(guī)定很寬松。

松散綁定的規(guī)則:忽略標點符號,將所有字母轉為小寫

特點:匹配規(guī)則很寬松。

舉例:屬性綁定,在配置文件中設置多種屬性名進行匹配。

我們配置類的ipAddress屬性,查看在配置文件中書寫屬性的多種形式。

需要設置的屬性:

配置文件中進行屬性綁定:

說明:上面的方式,均可以對屬性進行綁定,并未列出所有。

原因:忽略標點符號,將所有字母轉為小寫

如上方式有很多種,其中,官方主張”烤肉串模式”。

烤肉串模式:ip-address: 198.56.23.38

值得注意的是:

如上的寬松綁定規(guī)則僅僅限于:@ConfigurationProperties

Bean屬性校驗

對類的屬性賦值時自定義規(guī)則進行校驗。

"屬性校驗"使用步驟

1.導入對應坐標

<dependency>
    <groupId>javax.validation</groupId>
    <artifactId>validation-api</artifactId>
</dependency>
<dependency>
    <groupId>org.hibernate.validator</groupId>
    <artifactId>hibernate-validator</artifactId>
</dependency>

坐標說明:

validation-api:是屬性校驗的接口坐標。

hibernate-validator:相當于是屬性校驗的接口實現(xiàn)類坐標。

兩者關系就像jdbc和MySQL驅動相似,所以需要導入兩個坐標。

2.開啟校驗功能

在需要啟用校驗功能的類上寫注解:@Validated。

@Data
@ConfigurationProperties(prefix = "servers")
@Validated
public class ServiceConfig {
}

3.設置校驗規(guī)則

在屬性上設置校驗規(guī)則

@Data
@ConfigurationProperties(prefix = "servers")
@Validated
public class ServiceConfig {
    @Max(value = 8888,message = "最大值能超過8888")
    @Min(value = 200,message = "最小值不可小于200")
    private int prot;
    private String ipAddress;
    private long timeOut;
}

說明:如上代碼中,@Max和@Min就是設置的規(guī)則,其中有value和messge兩個屬性。

提供數(shù)據(jù)校驗的規(guī)則有許多,如下(查看constraints包):

4.測試

我們使用yml文件進行屬性綁定,進行屬性校驗,如果不符合條件則報錯。

到此這篇關于SpringBoot屬性綁定與bean屬性校驗實現(xiàn)方法詳解的文章就介紹到這了,更多相關SpringBoot屬性綁定內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論