Spring中讀取配置文件的五種方式
Spring中讀取配置文件的五種方式
- @Value:只能讀取單個(gè)配置項(xiàng)
- @ConfigurationProperties:可以一次性讀取多個(gè)配置項(xiàng),將多個(gè)配置項(xiàng)轉(zhuǎn)換為Bean對(duì)象。需要配合prefix使用。
- @PropertySource+@Value:獲取自定義配置文件的單個(gè)配置項(xiàng)。
- @PropertySource+@ConfigurationProperties:獲取自定義配置文件的多個(gè)配置項(xiàng)。
- Environment的getProperty方法獲取,很少使用。
舉例說明:
第一種:@Value注解方式獲取
application.yml
server: port: 9201
取值方式:
@Value("${server.port}")
private String port;
第二種:@ConfigurationProperties注解方式獲取
application.yml
student: name: 張三 age: 18
取值方式:
@Configuration
@ConfigurationProperties(prefix = "student")
public class CaptchaProperties{
private String name;
private Integer age;
...
}
注:需要配和@Component使用,本文中使用的@Configuration,我們查看Configuration注解會(huì)發(fā)現(xiàn)它使用了@Component注解
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Component
public @interface Configuration {
...
}
第三種:@PropertyResource + @Value注解方式獲取,可讀取自定義配置文件。只支持讀取.properties類型的配置文件,yml類型的配置文件需要自定義。
student.properties
student.name = 張三 student.age = 18
取值方式:
@Component
@PropertyResouce(value = "classpath:student.properties")
public class Student implements Serializable{
@Value("${student.name}")
private String name;
@Value("${student.age}")
private Integer age;
...
}
第四種:@PropertyResource + @ConfigurationProperties注解方式獲取,可讀取自定義配置文件。只支持讀取.properties類型的配置文件,yml類型的配置文件需要自定義。
student.properties
student.name = 張三 student.age = 18
取值方式:
/**
* @Component標(biāo)識(shí)為是Spring的一個(gè)組件,只有容器組件,容器才會(huì)為ConfigurationProperties提供此注入共
* 功能
*/
@Component
@PropertyResouce(value = "classpath:student.properties")
@ConfigurationProperties(prefix = "student")
public class Student implements Serializable{
private String name;
private Integer age;
...
}
第五種:Environment方式讀取,基本很少使用
application.yml
student: name: 張三 age: 18
取值方式:
...
@Autowired
private Environment env;
public String getUserName(){
return env.getProperty("student.name");
}
...
以上就是Spring中讀取配置文件的五種方式的詳細(xì)內(nèi)容,更多關(guān)于Spring讀取配置文件的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Java基礎(chǔ)總結(jié)之Thymeleaf詳解
Thymeleaf是一種現(xiàn)代的基于服務(wù)器端的Java模板引擎技術(shù),也是一個(gè)優(yōu)秀的面向Java的XML、XHTML、HTML5頁面模板,它具有豐富的標(biāo)簽語言、函數(shù)和表達(dá)式,在使用Spring Boot框架進(jìn)行頁面設(shè)計(jì)時(shí),一般會(huì)選擇Thymeleaf模板,需要的朋友可以參考下2021-05-05
JVM中對(duì)象的創(chuàng)建與OOP-Klass模型
這篇文章主要介紹了JVM中對(duì)象的創(chuàng)建與OOP-Klass模型,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09
Spring @Bean注解的使用場景與案例實(shí)現(xiàn)
隨著SpringBoot的流行,我們現(xiàn)在更多采用基于注解式的配置從而替換掉了基于XML的配置,所以本篇文章我們主要探討基于注解的@Bean以及和其他注解的使用2023-03-03
Springboot整合mqtt實(shí)現(xiàn)軟硬件通信的示例代碼
本文介紹了如何使用Spring Boot整合MQTT協(xié)議,實(shí)現(xiàn)物聯(lián)網(wǎng)軟硬件通信, MQTT是一種輕量級(jí)的消息隊(duì)列遙測傳輸協(xié)議,適用于物聯(lián)網(wǎng)設(shè)備通信和遠(yuǎn)程監(jiān)控,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2025-12-12
SpringBoot+Vue+Redis實(shí)現(xiàn)單點(diǎn)登錄(一處登錄另一處退出登錄)
小編接到一個(gè)需求,需要實(shí)現(xiàn)用戶在瀏覽器登錄后,跳轉(zhuǎn)到其他頁面,當(dāng)用戶在其它地方又登錄時(shí),前面用戶登錄的頁面退出登錄,這篇文章主要介紹了SpringBoot+Vue+Redis實(shí)現(xiàn)單點(diǎn)登錄,需要的朋友可以參考下2019-12-12
IDEA創(chuàng)建Spring?Boot?Web項(xiàng)目完整圖文教程
在軟件開發(fā)的浩瀚海洋中,SpringBoot以其獨(dú)特的魅力和強(qiáng)大的功能,為開發(fā)者開辟了一條通往高效、便捷開發(fā)之路,這篇文章主要介紹了IDEA創(chuàng)建Spring Boot Web項(xiàng)目的相關(guān)資料,需要的朋友可以參考下2026-04-04
關(guān)于JFormDesigner的安裝及破姐超詳細(xì)教程
JFormDesigner是一種先進(jìn)的圖形用戶界面Swing?的設(shè)計(jì)工具(非開源),具有一個(gè)獨(dú)立的開發(fā)工具產(chǎn)品和基于不同開發(fā)工具如Eclipse、NetBeans等的開發(fā)插件,本文給大家介紹JFormDesigner安裝破解教程,感興趣的朋友一起看看吧2023-12-12

