import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
public class ServiceTest {
public static String coreIp;
public static String corePort;
@Value("${core_ip}")
private void setcoreIp(String coreIp) {
ServiceTest.coreIp = coreIp;
}
@Value("${core_port:}")
private void setcorePort(String corePort) {
ServiceTest.corePort = corePort;
}
}
我可以获取coreIp的值,但是我无法获取corePort的值。该代码存在于Spring中。当我在@Value中删除':'时,它起作用了。当我将此代码移至Spring MVC时,它可以工作,并且我可以同时获得两个价值。
Spring和SpringMVC在解析@Value时是否有任何区别。
有什么建议吗?
答案 0 :(得分:2)
问题是SpEL ${core_port:}
希望为core_port
属性提供默认值。因此,请为core_port
提供一个默认值(例如${core_value:3000}
),或者通过删除分号来重命名您的媒体资源。
编辑:
由于您的core_port
是字符串类型,因此该值将是一个空字符串。