springboot获取配置文件中的值
概括
在开发过程中,对于一些通用的配置,通常会定在一个配置文件中。通常为application.properties
或者application.yml
文件中。我们只需要在需要使用的地方通过注解直接获取即可。
使用
在springboot中可以通过使用@value
注解来读取配置文件中的属性。注解的引用一定要是springframework提供的注解,不要引入错误。例如下面的代码
import org.springframework.beans.factory.annotation.Value;
@Value("$server.port:")
private String port;
即可获取到配置文件中定义的server.port设置属性值了。方便我们开发中使用。
优化
因为有些时候可能需要很多属性值,每次都需要引入过于麻烦,所以可以通过定义个类来专门存放这些属性,再设置get方法来获取值。
这样就可以在只引入一次就可以获取到各个配置的信息。注意在设置类的时候,只提供get方法,不要提供set方法。这样可以保证数据的安全性。参考代码如下所示。
package com.easyjob.entity.appconfig;
import org.springframework.beans.factory.annotation.Value;
public class Appconfig {
@Value("server.port")
private String port;
@Value("project.folder")
private String folder;
@Value("spring.datasource.username")
private String username;
@Value("spring.datasource.password")
private String password;
public String getPort() {
return port;
}
public String getFolder() {
return folder;
}
public String getUsername() {
return username;
}
public String getPassword() {
return password;
}
}
在需要使用的地方直接引入即可,如下所示:
@Resource
private Appconfig appconfig;
public PaginationResultVO<Account> findListByPage(AccountQuery query) {
String folder = appconfig.getFolder();
Integer count = this.findCountByParam(query);
Integer pageSize = query.getPageSize() == null ? PageSize.SIZE15.getSize() : query.getPageSize();
SimplePage page = new SimplePage(query.getPageNo(), count, pageSize);
query.setSimplePage(page);
List<Account> list = this.findListByParam(query);
PaginationResultVO result = new PaginationResultVO(count, page.getPageSize(), page.getPageNo(), page.getPageTotal(), list);
return result;
}