spring boot 自定义properties使用详解

本文详细介绍了如何在Spring Boot中自定义`application.properties`配置,包括单个和多个属性的注入、配置数组、松散绑定、参数引用、随机数、自定义配置文件的使用、在方法上使用@Bean注入、自定义结构以及参数校验。通过@ConfigurationProperties、@Component、@Value等注解,可以方便地管理和使用自定义配置。
摘要由CSDN通过智能技术生成

(1) 在application.properties文件中添加自定义属性(单个属性使用);

       在这里我们新建一个maven java project进行测试,取名为:spring-boot-hello4。

对pom.xml基本的spring boot 配置,主要用到的一个核心依赖是:

1
2
3
4
5
< dependency >  
           < groupId >org.springframework.boot</ groupId >  
           < artifactId >spring-boot-configuration-processor</ artifactId >  
           < optional >true</ optional >  
</ dependency >

官方中对于spring-boot-configuration-processor是这么说明的:

通过使用spring-boot-configuration-processor jar, 你可以从被@ConfigurationProperties注解的节点轻松的产生自己的配置元数据文件。该jar包含一个在你的项目编译时会被调用的Java注解处理器。想要使用该处理器,你只需简单添加spring-boot-configuration-processor依赖。

好了,官方已经说得很清楚了,这个依赖主要可以在代码中轻松的使用@ConfigurationProperties注解注入属性文件配置的属性值。

单属性注入的比较简单,只需要在application.properties加入配置,如下:

1
2
#key = value的形式;  
filePathLocation = d:/data/files

那么在对应需要使用的类中使用如下代码进行引入:

1
2
@Value ( "${filePathLocation}" )  
private  String filePathLocation;

这里使用@Value注解就可以为我们的变量filePathLocation设置上我们在application.properties文件中设置的key值了。

在实际开发中可能我们期望的是,如果没有设置key的话,设置一个默认值,使用如下代码即可实现(以上@Value的使用方式如果在没有设置key的话是会抛出异常的):

1
2
@Value ( "${filePathLocation1:d:/data/myfiles}" )  
private  String filePathLocation1;

这里的filePathLocation1我们并没有在application.properties文件中进行指定,但是查看打印信息是可以看到我们设置的默认值的,所以设置默认值的方式就是:

@Value(“${key:defaultVlaue}”) 的形式进行设置。

(2) 在application.properties文件中添加自定义属性(多个属性使用);


       多属性的设置也可以属性单属性的注入方式,但是这种方式不好,那么怎么比较优雅的注入多个属性值进行使用了。假设我们在application.properties定义了如下的属性:

1
2
3
4
5
6
7
8
#公司简称;
com.kfit.company.name =知远信科
#公司位置;
com.kfit.company.location =北京海淀区
#公司联系方式;
com.kfit.company.mobile =  110 **** 1195
#公司员工人数;
com.kfit.company.employCount =  100

接下来我们定义一个ComapnyProperties类进行设置这些参数。

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
39
40
41
42
43
44
package  com.kfit.properties;
  
import  org.springframework.boot.context.properties.ConfigurationProperties;
import  org.springframework.stereotype.Component;
  
//prefix设置key的前缀;
@ConfigurationProperties (prefix =  "com.kfit.company" )
@Component
public  class  CompanyProperties {
    
     private  String name;
     private  String location;
     private  String mobile;
     private  int  employCount;
     public  String getName() {
        return  name;
     }
     public  void  setName(String name) {
        this .name = name;
     }
     public  String getLocation() {
        return  location;
     }
     public  void  setLocation(String location) {
        this .location = location;
     }
     public  String getMobile() {
        return  mobile;
     }
     public  void  setMobile(String mobile) {
        this .mobile = mobile;
     }
     public  int  getEmployCount() {
        return  employCount;
     }
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值