@Service
@PropertySource(value = "classpath:my_service.properties")
public class SomeServiceImpl implements SomeService {
@Value("#{conf['service.cache']}")
private final boolean useCache = false;
@Value("#{conf['service.expiration.[<custom name>]']}")
private final HashMap<String, String> expirations = new HashMap<String, String>();
service.cache=true
service.expiration.name1=100
service.expiration.name2=20
>
名称1=100
名称2=20
您可以使用类似于SPEL JSON的语法在属性文件中编写一个简单的映射或列表的映射。
simple.map={'KEY1': 'value1', 'KEY2': 'value3', 'KEY3': 'value5'}
map.of.list={\
'KEY1': {'value1','value2'}, \
'KEY2': {'value3','value4'}, \
'KEY3': {'value5'} \
}
我对多行属性使用了\
以增强可读性
然后,在Java中,您可以像这样使用@value
自动访问和解析它。
@Value("#{${simple.map}}")
Map<String, String> simpleMap;
@Value("#{${map.of.list}}")
Map<String, List<String>> mapOfList;
使用${simple.map}
,@value
从属性文件中获取以下字符串:
"{'KEY1': 'value1', 'KEY2': 'value3', 'KEY3': 'value5'}"
然后,就像内联一样对其进行计算
@Value("#{{'KEY1': 'value1', 'KEY2': 'value3', 'KEY3': 'value5'}}")
您可以在官方文档中了解更多信息
问题内容: 是否可以使用Spring @Value将值从属性文件映射到HashMap。 目前,我有这样的事情,映射一个值不是问题。但是我需要在HashMap到期中映射自定义值。这样的事情可能吗? 属性文件:“ my_service.properties” 是否可以像这样的键映射:值集 name1 = 100 name2 = 20 问题答案: 在Spring配置中注册属性文件: 然后创建组件: 当我
问题内容: 我建立了一个小型应用程序,可以读取Excel文件并为我创建所有必要的SQL语句。客户不时操纵Excel文件。 Excel文件的第一行包含一个标题,我在阅读这些行时需要将其转换为整数。例如,在生成SQL语句之前,标题“英语”需要翻译成“ 30”。(只是一些内部定义)。(您可以将其与DNS- IP地址映射中的人类可读域名进行比较)目前,我手动进行映射,但是我想通过一个很小的Spring配置
问题内容: 我想使用该类填充一个。 我想将条目加载到文件中,然后将其复制到中。 之前,我曾经使用属性文件初始化,但是现在我已经定义了,并且只想在构造函数中对其进行初始化。 较早的方法: 但是现在,我有这个 如何将属性对象分配给此处? 问题答案: 如果我理解正确,则属性中的每个值都是代表整数的字符串。因此,代码如下所示:
我有一个Java类,它从JSON文件/数据库/其他东西加载我的应用程序的属性。 我已将配置为Spring上下文中的bean。 现在我想在spring上下文文件中使用中的一个值来表示不支持SpEL的内容,例如spring集成日志通道适配器,例如。 是否有一种方法可以设置可以使用SpEL填充的“属性”?
我需要使用jsp jstl在jsp中呈现所有java bean属性。我正在使用spring mvc。下面是Spring代码的一部分。 JSP JSTL代码: 实际上,POJO中有大约300个属性,手动编写类似属性非常繁琐。 我想要一些循环方式来获取所有属性值,这些属性值是使用jstl的jsp,或者可能是其他方式。请分享你的小贴士! 谢谢
在Struts2中,您可以使用属性文件中的值填充组件的标签。属性文件必须与将提供JSP的Struts2操作类具有相同的名称,并且与该操作类位于同一文件夹中。 我想对显示标签列做同样的事情。但它似乎不起作用。 displaytag中的列有一个名为titleKey的属性,可以让您这样做。但它似乎不起作用。 titleKey字段未从属性文件中获取值。当我使用Struts2文本字段的key字段,但不使用列