好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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

一、@Value读取application.properties 配置文件 中的值

application.properties配置文件

?

1

fileName=configName

PropertiesConfig类文件

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

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;

   }

}

测试

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

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. SpringBoot Test;

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文件

?

1

2

database.username=root

database.password=root

DatabaseConfig类文件

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

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;

   }

}

测试

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

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配置文件

?

1

2

3

fileName=configName

database.username=root

database.password=root

PropertySourceConfig类文件

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

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;

   }

}

测试

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

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项目地址

到此这篇关于详解SpringBoot注解读取配置文件的方式的文章就介绍到这了,更多相关SpringBoot注解读取配置文件内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

原文链接:https://juejin.cn/post/6927101340178972686

查看更多关于详解SpringBoot注解读取配置文件的方式的详细内容...

  阅读:14次