详解SpringBoot注解读取配置文件的方式
一、@Value读取application.properties配置文件中的值
application.properties配置文件
fileName=configName
PropertiesConfig类文件
importorg.springframework.beans.factory.annotation.Value;
importorg.springframework.stereotype.Component;
@Component
publicclassPropertiesConfig{
//通过@Value注解读取fileName的值
@Value("${fileName}")
privateStringfileName;
publicStringgetFileName(){
returnfileName;
}
publicvoidsetFileName(StringfileName){
this.fileName=fileName;
}
}
测试
importcom.model.PropertiesConfig;
importorg.junit.Test;
importorg.junit.runner.RunWith;
importorg.springframework.beans.factory.annotation.Autowired;
importorg.springframework.boot.test.context.SpringBootTest;
importorg.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
publicclassPropertiesConfigTest{
@Autowired
privatePropertiesConfigpropertiesConfig;
@Test
publicvoidtest(){
System.out.println(propertiesConfig.getFileName());//结果输出:configName
assert"configName".equals(propertiesConfig.getFileName());
}
}
二、@ConfigurationProperties读取多个application.properties配置文件中的值
application.properties文件
database.username=root database.password=root
DatabaseConfig类文件
importorg.springframework.boot.context.properties.ConfigurationProperties;
importorg.springframework.stereotype.Component;
@Component
@ConfigurationProperties("database")
publicclassDatabaseConfig{
privateStringuserName;
privateStringpassWord;
publicStringgetUserName(){
returnuserName;
}
publicvoidsetUserName(StringuserName){
this.userName=userName;
}
publicStringgetPassWord(){
returnpassWord;
}
publicvoidsetPassWord(StringpassWord){
this.passWord=passWord;
}
}
测试
importcom.model.DatabaseConfig;
importorg.junit.Test;
importorg.junit.runner.RunWith;
importorg.springframework.beans.factory.annotation.Autowired;
importorg.springframework.boot.test.context.SpringBootTest;
importorg.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
publicclassDatabaseConfigTest{
@Autowired
privateDatabaseConfigdatabaseConfig;
@Test
publicvoidtest(){
System.out.println("username="+databaseConfig.getUserName()+",password="+databaseConfig.getPassWord());//结果输出:username=root,password=root
assert"root".equals(databaseConfig.getUserName());
assert"root".equals(databaseConfig.getPassWord());
}
}
三、@PropertySource读取任意配置文件
新建property-source.properties配置文件
fileName=configName database.username=root database.password=root
PropertySourceConfig类文件
importorg.springframework.beans.factory.annotation.Value;
importorg.springframework.boot.context.properties.ConfigurationProperties;
importorg.springframework.context.annotation.PropertySource;
importorg.springframework.stereotype.Component;
@Component
@PropertySource(value={"classpath:property-source.properties"})
@ConfigurationProperties("database")
publicclassPropertySourceConfig{
@Value("${fileName}")
privateStringfileName;
privateStringuserName;
privateStringpassWord;
publicStringgetFileName(){
returnfileName;
}
publicvoidsetFileName(StringfileName){
this.fileName=fileName;
}
publicStringgetUserName(){
returnuserName;
}
publicvoidsetUserName(StringuserName){
this.userName=userName;
}
publicStringgetPassWord(){
returnpassWord;
}
publicvoidsetPassWord(StringpassWord){
this.passWord=passWord;
}
}
测试
importcom.model.PropertySourceConfig;
importorg.junit.Test;
importorg.junit.runner.RunWith;
importorg.springframework.beans.factory.annotation.Autowired;
importorg.springframework.boot.test.context.SpringBootTest;
importorg.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
publicclassPropertySourceConfigTest{
@Autowired
privatePropertySourceConfigpropertySourceConfig;
@Test
publicvoidtest(){
assert"configName".equals(propertySourceConfig.getFileName());
System.out.println("fileName="+propertySourceConfig.getFileName());//结果输出:configName
assert"root".equals(propertySourceConfig.getUserName());
System.out.println(propertySourceConfig.getUserName());//结果输出:root
assert"root".equals(propertySourceConfig.getPassWord());
System.out.println(propertySourceConfig.getPassWord());//结果输出:root
}
}
完整代码链接:read-config-file项目地址
到此这篇关于详解SpringBoot注解读取配置文件的方式的文章就介绍到这了,更多相关SpringBoot注解读取配置文件内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!