详解SpringBoot注解读取配置文件的方式

网友投稿 516 2023-02-12

详解SpringBoot注解读取配置文件的方式

详解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

}

}

完整代码链接:read-config-file项目地址

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:app运营模式多少钱(维持一个app运营要多钱)
下一篇:SpringBoot集成Redis实现消息队列的方法
相关文章

 发表评论

暂时没有评论,来抢沙发吧~