2017-05-16 7 views
0

spring-context.xmlファイルにプロパティを設定し、long dataTypeの設定メソッドが1つのクラスをインスタンス化したいとします。spring-context.xmlでプロパティを設定する方法

package com.mob.test; 

class Test 
{ 

private long timeInMillis; 

//getter and setter 
} 

test.properties

TIME_IN_MINUTES=10 

春のcontext.xml

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns="http://www.springframework.org/schema/beans" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 
     http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd"> 


    <context:property-placeholder location="classpath:test.properties"/>  

    <bean id="ready" 
     class="com.mob.test.Test"> 
     <property name="timeInMillis" value="${TIME_IN_MINUTES}*60*1000"/> 
    </bean> 
</beans> 

はNumberFormateExceptionを与えます。

どうすればこの問題を解決できますか?

+0

試して<プロパティ名= "timeInMillis" タイプ= "がjava.lang.Long" 値= "$ {TIME_IN_MINUTES} * 60 * 1000" /> –

+0

価値がありますString right?私はクラスに数値を挿入し、String.toInteger(数値)とクラス内の計算を行います。 –

+0

いいえいいえ値が長すぎます –

答えて

1

これを試してみてください:Expression support for defining bean definitions

#{ systemProperties['TIME_IN_MINUTES'] * 60 * 1000 } 
+0

Eric Luciaさん、ありがとうございました。私はプロパティファイルからTIME_IN_MINUTESを読みました。 –

+0

私の問題は解決しました。ありがとうEric –

+0

関連する問題