springboot在application.properties中注入value,list和map

本文介绍了如何在Spring Boot项目中,通过`application.properties`配置文件进行value、list和map的数据注入。讲解了@PropertySource和@PropertySources注解的使用方法,并提供了测试结果作为实践展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

配置文件

在配置文件中配置需要注入的值。

#单个值
val=10

#List
list=1,2,3,4

#Map<String, String>
map={'name':'chen', 'age':'12', 'sex':'男'}

#Map<String, List<String>>
map.of.list={\
  'KEY1': {'value1','value2'}, \
  'KEY2': {'value3','value4'}, \
  'KEY3': {'value5'} \
 }

注解

使用@PropertySource注解标明配置文件路径,同时引入多个配置文件可使用@PropertySources注解

@PropertySource(value = {"classpath:application-left.properties"})

@PropertySources({@PropertySource(value = "classpath:application.properties", encoding = "UTF-8")})

in

数据注入

//单个数值,可注入为int或String
@Value
### 在 Spring Boot 中配置 `application.yml` 文件中的 Map 类型 为了在 `application.yml` 文件中定义并使用 `Map<String, List<String>>` 类型的数据结构,可以按照如下方式来编写 YAML 配置: #### application.yml 的具体配置方法 ```yaml example: mapProperty: key1: - valueA - valueB key2: - valueC - valueD ``` 上述代码展示了如何创建一个多层映射表,在这里 `mapProperty` 是顶层键名,其下有两个子项分别是 `key1` `key2`,每个子项都关联着一个字符串列表[^1]。 #### 对应的 Java Bean 定义 为了让这些配置能够被应用程序识别到,还需要有一个对应的Java类用于接收这些属性值。下面是一个简单的例子展示怎样通过 `@ConfigurationProperties` 注解绑定这个复杂的配置项: ```java import org.springframework.boot.context.properties.ConfigurationProperties; import java.util.Map; import java.util.List; @ConfigurationProperties(prefix = "example") public class ExampleProperties { private Map<String, List<String>> mapProperty; public Map<String, List<String>> getMapProperty() { return mapProperty; } public void setMapProperty(Map<String, List<String>> mapProperty) { this.mapProperty = mapProperty; } } ``` 此段代码声明了一个名为 `ExampleProperties` 的bean,并指定了前缀为 `"example"` 来匹配之前提到的应用程序配置文件里的相应节点。 #### 使用自定义配置类 一旦完成了以上两步操作之后就可以轻松地注入该 bean 到任何服务组件里去访问所配置的地图数据了: ```java @Service public class ServiceImpl { private final ExampleProperties exampleProperties; @Autowired public ServiceImpl(ExampleProperties exampleProperties){ this.exampleProperties = exampleProperties;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值