A1_M1=X1
A1_M2=X2
A1_M3=X3
A2_M1=X4
Default=X5
以上值在 test.properties 的属性文件中。
我能够按照下面的代码打印键 A1_M1 的 X1 值。
如果我的键值是动态的并且我不知道键(属性文件),我需要一些指导如何实现它,直到我处理另一个对象,该对象被发送到类的 papratmer。我需要处理这个对象以了解键,然后查看属性文件是否存在键。如果存在则返回值,否则返回默认值。
**spring-bean.xml**
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:util="http://www.springframework.org/schema/util"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation=" http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring--context-
3.0.xsd">
<util:properties id="nodeProperty"location="classpath:config/test.properties" />
<context:property-placeholder properties-ref="nodeProperty" />
<context:component-scan base-package="com.jpmc.selftutor" />
</beans>
代码
SpringDemo.java
package com.jpmc.selftutor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Component;
import org.springframework.context.support.
ClassPathXmlApplicationContext;
@Component("SpringDemo")
public class SpringDemo {
private static String a1m1;
@Autowired
public SpringDemo(@Value("${A1_M1}") String a1m1){
SpringDemo.a1m1 = a1m1;
}
@SuppressWarnings({ "resource", "unused" })
public static void main(String args[]){
ClassPathXmlApplicationContext ctx = new
ClassPathXmlApplicationContext(new String[]
{ "spring-bean.xml" });
System.out.println("Value of a1m1: " +a1m1);
}
}
最佳答案
您可以使用带有默认值的@Value 注解
@Value("#{nodeProperty['A1_M1'] ?: nodeProperty['Default']}")
关于java - 使用spring框架java读取动态键值对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32463727/