मैंने अपने एप्लिकेशन कॉन्टेक्स्ट फ़ाइल में निम्नलिखित जोड़ा
<bean id="properties" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="locations">
<list>
<value>classpath:stage.properties</value>
<value>classpath:environment.properties</value>
</list>
</property>
</bean>
जहां मुझे stage.properties फ़ाइल मानों का उपयोग करने की आवश्यकता है .stage.properties फ़ाइल src / main / संसाधनों में है
मैंने इस फ़ाइल तक पहुंचने के लिए अपने जावा क्लास में निम्न पंक्ति लिखी है
@Value("${spring.username}")
private String usr;
लेकिन मुझे usr के लिए मूल्य मिल रहा है जैसे = $ {spring.username} मैं यहाँ क्या याद कर रहा हूँ?
उत्तर:
उत्तर № 1 के लिए 1@ वैल्यू ("$ {spring.username}") नोटेशन को संपत्ति प्लेसहोल्डर को हल करने के लिए स्प्रिंग संस्करण के आधार पर PropertyPalceholderConfigurer / PropertySourcesPlaceholderConfigurer के उपयोग की आवश्यकता है। भी
समाधान 1
बदलने के
<bean id="properties" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="locations">
<list>
<value>classpath:stage.properties</value>
<value>classpath:environment.properties</value>
</list>
</property>
</bean>
साथ में
<context:property-placeholder location="classpath:stage.propertes,classpath:environment.properties"/>
वसंत संदर्भ नामस्थान आयात करना सुनिश्चित करें
समाधान 2।
निम्नानुसार @Value के साथ अपने गुण बीन तक पहुंचने के लिए SPEL का उपयोग करें
@Value("#{properties["spring.username"]}
private String usr;
यह आपके संदर्भ में गुण बीन की spring.username संपत्ति का उपयोग करेगा