博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringBoot中的Application.Properties怎么用?
阅读量:5997 次
发布时间:2019-06-20

本文共 3652 字,大约阅读时间需要 12 分钟。

一般而言,SpringBoot项目中都会有一个默认的配置文件Application.Properties,相当于一个变量的列表,有点类似于系统启动时的*.ini文件,一般都是放在Resources文件夹下面。

那么在程序中,又是怎么读取和使用Application.Properties里面的配置信息的呢?一般有三种方式:
1. @Value
一般在程序启动类里使用,相当于声明和初始化了某个属性。
Application.Properties配置文件信息如下:

com.zyd.type=Springboot - @Valuecom.zyd.title=使用@Value获取配置文件

在启动类中加入@Value("${com.zyd.type}")

public class Applaction {    @Value("${com.zyd.type}")    private String type;    @Value("${com.zyd.title}")    private String title;    @RequestMapping("/value")    public Map
value() throws UnsupportedEncodingException { Map
map = new HashMap
(); map.put("type", type); // *.properties文件中的中文默认以ISO-8859-1方式编码,因此需要对中文内容进行重新编码 map.put("title", new String(title.getBytes("ISO-8859-1"), "UTF-8")); return map; } public static void main(String[] args) throws Exception { SpringApplication application = new SpringApplication(Applaction.class); application.run(args); }}

2. Environment

一般在程序启动类里使用,相当于通过这个类的方法获取到属性信息。
Application.Properties配置文件信息如下:

com.zyd.type=Springboot - @Valuecom.zyd.title=使用@Value获取配置文件

在启动类中可以使用Environment获取配置信息。

....import org.springframework.core.env.Environment;....public class Applaction {    @Autowired    private Environment env;    @RequestMapping("/env")    public Map
env() throws UnsupportedEncodingException { Map
map = new HashMap
(); map.put("type", env.getProperty("com.zyd.type")); map.put("title", new String(env.getProperty("com.zyd.title").getBytes("ISO-8859-1"), "UTF-8")); return map; } public static void main(String[] args) throws Exception { SpringApplication application = new SpringApplication(Applaction.class); application.run(args); }}

3. @ConfigurationProperties

一般在自定义类里使用,相当于通过自定义类的方法获取到属性信息,前提是要在自定义类中设置相应的方法获取配置信息。
自定义类

public class PropertiesConfig {    public String type;    public String title;    public Map
login = new HashMap
(); public List
urls = new ArrayList<>(); public String getType() { return type; } public void setType(String type) { this.type = type; } public String getTitle() { try { return new String(title.getBytes("ISO-8859-1"), "UTF-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } return title; } public void setTitle(String title) { this.title = title; } public Map
getLogin() { return login; } public void setLogin(Map
login) { this.login = login; } public List
getUrls() { return urls; } public void setUrls(List
urls) { this.urls = urls; }}

使用自定义类读取配置信息

....import com.zyd.property.config.PropertiesConfig;....public class Applaction {    @Autowired    private PropertiesConfig propertiesConfig;    @RequestMapping("/config")    public Map
configurationProperties() { Map
map = new HashMap
(); map.put("type", propertiesConfig.getType()); map.put("title", propertiesConfig.getTitle()); map.put("login", propertiesConfig.getLogin()); map.put("urls", propertiesConfig.getUrls()); return map; } public static void main(String[] args) throws Exception { SpringApplication application = new SpringApplication(Applaction.class); application.run(args); }}

当然,以上的读取的都是默认的配置文件,还可以通过加入注册监听器的方式加载配置文件,即是PropertiesLoaderUtils方法。

转载于:https://blog.51cto.com/13402621/2153289

你可能感兴趣的文章
Java 简单算法--打印乘法口诀(只使用一次循环)
查看>>
hdu 1043
查看>>
Servlet和JSP之有关Servlet和JSP的梳理(二)
查看>>
PHP 循环
查看>>
select sort
查看>>
设备树中的中断
查看>>
ArcGIS手动汉化方法
查看>>
LINQ系列:Linq to Object转换操作符
查看>>
字符串
查看>>
我是谁,从哪里来,将要到哪里去?
查看>>
tableViewCell自动计算高度
查看>>
关于显著性检验,你想要的都在这儿了!!(基础篇)
查看>>
java中Thread与Runnable的区别
查看>>
你不知道的JavaScript(上卷) (Kyle Simpson 著)
查看>>
重建索引报错-python数据分析
查看>>
dedecms添加文章时提示标题为空,编辑文章时编辑器空白的解决办法
查看>>
由RGB到HSV颜色空间的理解
查看>>
Nodejs之路(二)—— Nodejs再入门
查看>>
HPU第四次积分赛-K :方框(水题,打印图形)
查看>>
LoadRunner之参数化
查看>>