2013-04-10 10 views
34

से मूल्य के लिए हल नहीं कर रहा है, मैंने इसे पहले किसी अन्य प्रोजेक्ट में काम किया है, मैं सिर्फ वही काम कर रहा हूं लेकिन किसी कारण से यह काम नहीं कर रहा है। स्प्रिंग @Value संपत्ति फ़ाइल से पढ़ने नहीं है, लेकिन इसके बजाय यह सचमुचवसंत @ वैल्यू संपत्ति फ़ाइल

मूल्य ले रहा है AppConfig.java

@Component 
public class AppConfig 
{ 
    @Value("${key.value1}") 
    private String value; 

    public String getValue() 
    { 
     return value; 
    } 
} 

applicationContext.xml:

<context:component-scan 
    base-package="com.test.config" /> 
<context:annotation-config /> 

<bean id="appConfigProperties" 
    class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
    <property name="location" value="classpath:appconfig.properties" /> 
</bean> 

appconfig.properties

key.value1=test value 1 

मेरी नियंत्रक में, मैं जहां है:

@Autowired 
private AppConfig appConfig; 

आवेदन ठीक शुरू होता है, लेकिन यह रिटर्न

${key.value1} 

यह नहीं है जब मैं

appConfig.getValue() 

करना गुण फ़ाइल के अंदर मूल्य को हल करें।

विचार?

+5

डुप्लिकेट http://stackoverflow.com/questions/11890544/spring-value-annotation-in-controller-class-not-evaluating-to-value-inside-pro और http://stackoverflow.com/questions/ 5275724/spring-3-0-5-doesnt-मूल्यांकन-मूल्य-एनोटेशन-गुण-गुण – pedjaradenkovic

+0

धन्यवाद! उस धागे को नहीं मिला, जो मुझे मिला वह मूल्य शून्य से संबंधित था –

उत्तर

15

समस्या मेरे अनुप्रयोग Context.xml बनाम spring-servlet.xml में समस्या के कारण है - यह बीन्स के बीच समस्या को स्कॉइंग कर रहा था।

pedjaradenkovic कृपया मुझे एक मौजूदा संसाधन की ओर इशारा किया: Spring @Value annotation in @Controller class not evaluating to value inside properties file और Spring 3.0.5 doesn't evaluate @Value annotation from properties

1

pedjaradenkovic की टिप्पणी का एक पठन है।

वह जो लिंक प्रदान करता है उसके आगे, कारण यह काम नहीं कर रहा है कि @Value प्रसंस्करण को PropertyPlaceholderConfigurer के बजाय PropertySourcesPlaceholderConfigurer की आवश्यकता है।

+1

PropertyPlaceholderConfigurer मेरे लिए ठीक काम करता है।मुझे सिर्फ संदर्भ को ठीक करने की आवश्यकता है: मेरे ऐप संदर्भ में घटक-स्कैन xml और spring servlet xml –

+0

@TS वसंत का कौन सा संस्करण आप उपयोग कर रहे हैं, कृपया? – Muel

+0

वसंत 3.2.2 रिलीज –

40

मैं भी कारण @value काम नहीं कर रहा था, @value एक PropertyPlaceholderConfigurer के बजाय PropertySourcesPlaceholderConfigurer की आवश्यकता है पाया। मैंने वही परिवर्तन किया और यह मेरे लिए काम किया, मैं वसंत 4.0.3 रिलीज का उपयोग कर रहा हूँ। मैं कोड के नीचे इस का उपयोग करते हुए मेरी विन्यास फाइल में विन्यस्त -

@Bean 
public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() { 
return new PropertySourcesPlaceholderConfigurer(); 
} 
+1

देखें जो मेरे दिन को बचाया !!! –

+0

धन्यवाद। यह बहुत अच्छा काम करता है – Steph

+0

इसे सही प्रतिक्रिया –

4

मेरे मामले में, स्थिर क्षेत्रों इंजेक्शन नहीं किया जाएगा।

2

मैं वसंत बूट का उपयोग कर रहा था, और मेरे लिए 1.4.0.RELEASE से 1.5.6.RELEASE से संस्करण को अपग्रेड करने के लिए इस समस्या को हल किया गया।

संबंधित मुद्दे