轻量化开发小程序如何提升企业数字化转型的效率与灵活性
568
2023-02-12
详解SpringBoot注解读取配置文件的方式
一、@Value读取application.properties配置文件中的值
application.properties配置文件
fileName=configName
PropertiesConfig类文件
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
public class PropertiesConfig {
//通过@Value注解读取fileName的值
@Value("${fileName}")
private String fileName;
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
}
测试
import com.model.PropertiesConfig;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
public class PropertiesConfigTest {
@Autowired
private PropertiesConfig propertiesConfig;
@Test
public void test(){
System.out.println(propertiesConfig.getFileName());//结果输出:configName
assert "configName".equals(propertiesConfig.getFileName());
}
}
二、@ConfigurationProperties读取多个application.properties配置文件中的值
application.properties文件
database.username=root
database.password=root
DatabaseConfig类文件
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Component
@ConfigurationProperties("database")
public class DatabaseConfig {
private String userName;
private String passWord;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassWord() {
return passWord;
}
public void setPassWord(String passWord) {
this.passWord = passWord;
}
}
测试
import com.model.DatabaseConfig;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
public class DatabaseConfigTest {
@Autowired
private DatabaseConfig databaseConfig;
@Test
public void test(){
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类文件
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;
@Component
@PropertySource(value = {"classpath:property-source.properties"})
@ConfigurationProperties("database")
public class PropertySourceConfig {
@Value("${fileName}")
private String fileName;
private String userName;
private String passWord;
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassWord() {
return passWord;
}
public void setPassWord(String passWord) {
this.passWord = passWord;
}
}
测试
import com.model.PropertySourceConfig;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
public class PropertySourceConfigTest {
@Autowired
private PropertySourceConfig propertySourceConfig;
@Test
public void test(){
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
}
}
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~