SpringBoot 有几种读取配置文件的方式

在这里插入图片描述

四种注解

先看配置文件 application.properties

user.username=CCCCXXX
user.password=123123123
user.age=18
user.salary=2000.00

1. @Value读取

@Service
public class UserServiceImpl{
	@Value("${user.username}")
	private String username;
	@Value("${user.password}")
	private String password;
	@Value("${user.age}")
	private int age;
	@Value("${user.saary}")
	private double salary;
	
	// 省略...
}

2. @PropertySource读取

@Service
@PropertySource(value="application.properties")
public class UserServiceImpl{
	@Value("${user.username}")
	private String username;
	@Value("${user.password}")
	private String password;
	@Value("${user.age}")
	private int age;
	@Value("${user.saary}")
	private double salary;
	
	// 省略...
}

配合@Value一起使用
!!!注意!!!@PropertySource读取不支持yml文件配置

3. @Environment读取

配置文件里面所有的配置都可以用Environment来获取

@Service
public class UserServiceImpl{
	
	@Autowired
	private Environment env;

	private void getUsername(){
		String username = env.getProperty("user.username");
	}
	// 省略...
}

4. @ConfigurationProperties读取

**这个注解就更屌了…**可以配合着别的注解一起使用

@Service
@ConfigurationProperties(prefix="user")
public class UserServiceImpl{
	
	private String username;
	
	private String password;
	
	private int age;
	
	private double salary;
	
	// 省略...
}

5. @ConfigurationProperties + @PropertySource注解一起使用

假如我在resources文件夹新建一个文件夹config
在创建一个配置文件two.properties内容不变,我可以这样使用

@Service
@PropertySource(value="config/two.properties")
@ConfigurationProperties(prefix="user")
public class UserServiceImpl{
	
	private String username;
	
	private String password;
	
	private int age;
	
	private double salary;
	
	// 省略...
}

综上所述四种注解均能从配置文件中读取自定义参数,也可以相互之间搭配使用

发布了6 篇原创文章 · 获赞 6 · 访问量 198
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 深蓝海洋 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览