91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SpringBoot隨機數設置及參數間引用的示例分析

發布時間:2021-06-04 14:43:49 來源:億速云 閱讀:229 作者:小新 欄目:開發技術

這篇文章將為大家詳細講解有關SpringBoot隨機數設置及參數間引用的示例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

自定義配置

SpringBoot免除了項目中大部分手動配置,可以說,幾乎所有的配置都可以寫在全局配置文件application.peroperties中,SpringBoot會自動加載全局配置文件從而免除我們手動加載的煩惱。但是,如果我們自定義了配置文件,那么SpringBoot是無法識別這些配置文件的,此時需要我們手動加載。

接下來,將針對SpringBoot的自定義配置文件及其加載方式進行講解。

(1)使用@PropertySource加載配置文件

我們可以使用@PropertySource注解結合@Configuration注解配置類的方式來加載自定義配置文件,@PropertySource注解用于指定自定義配置文件的具體位置和名稱。同時,為了保證SpringBoot能夠掃描該注解,還需要在類上添加@Configuration注解將實體類作為自定義配置類。

如果需要將自定義配置文件中的屬性值注入到對應類的屬性中,可以使用@ConfigurationProperties注解或者@Value注解進行屬性值注入。

操作步驟:

1、在SpringBoot項目的resources目錄下新建一個名為test.properties的自定義配置文件,在該配置文件中編寫需要設置的配置屬性:

# 對實體類對象MyProperties進行屬性配置
test.id=1
test.name=test

2、在com.hardy.springboot_demo.pojo包下新建一個配置類MyProperties,提供test.properties自定義配置文件中對應的屬性,并根據@PropertySource注解的使用進行相關的配置:

package com.hardy.springboot_demo.pojo;

/**
 * @Author: HardyYao
 * @Date: 2021/5/31
 */

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;

@Configuration // 自定義配置類
@PropertySource("classpath:test.properties") // 指定自定義配置文件的文件位置和文件名稱
@EnableConfigurationProperties(MyProperties.class) // 開啟對應配置類的屬性注入功能
@ConfigurationProperties(prefix = "test") // 指定配置文件注入屬性前綴
public class MyProperties {

    private int id;

    private String name;

    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;
    }

    @Override
    public String toString() {
        return "MyProperties{" +
                "id=" + id +
                ", name='" + name + '\'' +
                '}';
    }
}

這里主要是新建一個自定義配置類,通過相關注解引入了自定義的配置文件,并完成了自定義屬性值的注入。

針對上述的幾個注解,進行逐一講解:

  • @Configuration注解表示當前類是一個自定義配置類,并添加為Spring容器的組件,這里也可以使用傳統的@Component注解實現相同的功能;

  • @PropertySource("classpath:test.properties")注解指定了定義配置文件的文件位置和文件名稱,此處表示自定義配置文件為classpath類路徑下的test.properties文件;

  • @ConfigurationProperties(prefix = "test")將上述自定義配置文件test.properties中以test開頭的屬性值注入到該配置類屬性中;

  • 如果配置類上使用的是@Component注解而非@Configuration注解,那么@EnableConfigurationProperties注解還可以省略。

3、編寫測試方法進行測試:

@Autowired
private MyProperties myProperties;
@Test
void myPropertiesTest() {
    System.out.println(myProperties);
}

測試結果:

SpringBoot隨機數設置及參數間引用的示例分析

(2)使用@Configuration編寫自定義配置類

在SpringBoot框架中,推薦使用配置類的方式向容器中添加和配置組件。

在SpringBoot框架中,通常使用@Configuration注解定義一個配置類,SpringBoot會自動掃描和識別配置類,從而替換傳統Spring框架中的XML配置文件。

當自定義一個配置類后,還需要在類中的方法上加上@Bean注解進行組件配置,將方法的返回對象注入到Spring容器中,并且組件名稱默認使用的是方法名,當然也可以使用@Bean注解的name或value屬性自定義組件的名稱。

操作步驟:

1、在com.hardy.springboot_demo包下新建一個config包,并在該包下新建一個MyService類,該類中不需要寫任何代碼:

package com.hardy.springboot_demo.config;

/**
 * @Author: HardyYao
 * @Date: 2021/5/31
 */
public class MyService {
}

由于該類目前沒有任何配置和注解,因此還無法正常被SpringBoot掃描和識別。

2、在config包下,新建一個MyConfig類,并使用@Configuration注解將該類聲明為一個配置類,該類的內容如下:

package com.hardy.springboot_demo.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @Author: HardyYao
 * @Date: 2021/5/31
 */
@Configuration // 定義該類為一個配置類
public class MyConfig {

    /**
     * 將返回值對象作為組件添加到Spring容器中,該組件id默認為方法名
     * @return
     */
    @Bean
    public MyService myService(){
        return new MyService();
    }

}

MyConfig是@Configuration注解聲明的配置類(類似于聲明了一個XML配置文件),該配置類會被SpringBoot自動掃描識別。

使用@Bean注解的myService()方法,其返回值對象會作為組件添加到Spring容器中(類似于XML配置文件中的標簽配置),并且該組件id默認為方法名myService。

3、編寫測試方法進行測試

@Autowired
private ApplicationContext applicationContext;
    
@Test
void iocTest() {
    System.out.println(applicationContext.containsBean("myService"));
}

上述代碼中,先通過@Autowired注解注入Spring容器示例ApplicationContext,然后在測試方法iocTest()中測試查看該容器中是否包含id為myService的組件。

執行測試方法iocTest(),運行結果如下:

SpringBoot隨機數設置及參數間引用的示例分析

從測試結果可以看出,測試方法iocTest()運行成功,顯示運行結果為true,表示Spirng的IOC容器中也包含了id為myService的實例對象組件,說明使用自定義配置類的形式完成了向Spring容器進行組件的添加和配置。

隨機數設置及參數間引用

在SpringBoot配置文件中設置屬性時,除了可以像前面示例中顯示的配置屬性值外,還可以使用隨機值和參數間引用對屬性值進行設置。下面,針對配置文件中這兩種屬性值的設置方式進行講解。

隨機值設置

在SpringBoot配置文件中,隨機值設置使用到了SpringBoot內嵌的RandomValuePropertySource類,對一些隱秘屬性值或者測試用例屬性值進行隨機值注入。

隨機值設置的語法格式為${random.xx},xx表示需要制定生成的隨機數類型和范圍,它可以生成隨機的整數、uuid或字符串,示例代碼如下:

my.secret=${random.value} // 配置隨機值
my.number=${random.int} // 配置隨機整數
my.bignumber=${random.long} // 配置隨機long類型數
my.uuid=${random.uuid} // 配置隨機uuid類型數
my.number.less.than.ten=${random.int(10)} // 配置小于10的隨機整數
my.number.in.range=${random.int[1024,65536]} // 配置范圍在[1024,65536]之間的隨機整數

上述代碼中,使用RandomValuePropertySource類中random提供的隨機數類型,分別展示了不同類型隨機值的設置示例。

參數間引用

在SpringBoot配置文件中,配置文件的屬性值還可以進行參數間的引用,也就是在后一個配置的屬性值中直接引用先前定義過的屬性,這樣就可以直接解析其中的屬性值了。

使用參數間引用的好處就是,在多個具有相互關聯的配置屬性中,只需要對其中一處屬性進行預先配置,那么其他地方都可以引用,省去了后續多處修改的麻煩。

參數間引用的語法格式為${xx},xx表示先前在配置文件中已經配置過的屬性名,示例代碼如下:

app.name=MyApp
app.description=${app.name} is a Spring Boot application

上述參數間引用設置示例中,先設置了“app.name=MyApp”,將app.name屬性的屬性值設置為了MyApp;接著,在app.description屬性配置中,使用${app.name}對前一個屬性進行了引用。

接下來,通過一個案例來演示使用隨機值設置以及參數間引用的方式進行屬性設置的具體使用和效果,具體步驟如下:

1、打開全局配置文件application.properties,在該配置文件中分別通過隨機值設置和參數間引用來配置兩個屬性,示例代碼如下:

# 隨機值設置以及參數間引用配置
hardy.age=${random.int[20,30]}
hardy.description=hardy的年齡可能是${hardy.age}

在上述application.properties配置文件中,先使用隨機數設置了hardy.age的屬性值,該屬性值的取值范圍在[10,20]之間,隨后使用參數間引用配置了hardy.description屬性。

2、在項目的測試類中添加description屬性,并將配置文件中hardy.description的屬性進行注入,然后新增一個測試方法進行測試,測試代碼如下:

@Value("${hardy.description}")
private String description;

@Test
void placeholderTest() {
    System.out.println(description);
}

在上述代碼中,通過@Value("${hardy.description}")注解將配置文件中的hardy.description屬性值注入到了對應的description屬性中,在測試方法placeholderTest()中對該屬性值進行了輸出打印。

執行測試方法后,控制臺輸出結果如下所示:

SpringBoot隨機數設置及參數間引用的示例分析

可以看到,測試方法placeholderTest()成功打印出了description屬性的注入內容(age的取值始終在[20,30]之間隨機顯示),該內容與配置文件中配置的屬性值保持一致。

關于“SpringBoot隨機數設置及參數間引用的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

三原县| 罗城| 海口市| 方正县| 微山县| 苍山县| 阳江市| 全州县| 杭锦后旗| 苏尼特右旗| 元谋县| 郁南县| 松阳县| 平谷区| 泸定县| 修水县| 墨玉县| 奉化市| 平果县| 府谷县| 黔西| SHOW| 福州市| 马鞍山市| 鹤壁市| 新兴县| 石棉县| 瓮安县| 屯门区| 南澳县| 旌德县| 丹东市| 芷江| 新田县| 光泽县| 瓦房店市| 临汾市| 通江县| 和林格尔县| 子长县| 分宜县|