में गुणों को हल नहीं करता है वर्तमान में मेरे पास एक स्प्रिंग xml कॉन्फ़िगरेशन (स्प्रिंग 4) है जो गुण फ़ाइल लोड करता है।स्प्रिंग प्लेसहोल्डर JavaConfig
context.properties
my.app.service = myService
my.app.other = ${my.app.service}/sample
स्प्रिंग एक्सएमएल विन्यास
<bean id="contextProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="ignoreResourceNotFound" value="true" />
<property name="fileEncoding" value="UTF-8" />
<property name="locations">
<list>
<value>classpath:context.properties</value>
</list>
</property>
</bean>
<bean id="placeholder" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="ignoreResourceNotFound" value="true" />
<property name="properties" ref="contextProperties" />
<property name="nullValue" value="@null" />
<property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
</bean>
बीन जो गुण
@Component
public class MyComponent {
@Value("${my.app.other}")
private String others;
}
यह पूरी तरह से काम करता है और के रूप में अपवादित others
मूल्य, MyService/sample
है का उपयोग करें। लेकिन जब मैं JavaConfig द्वारा इस कॉन्फ़िगरेशन को प्रतिस्थापित करने का प्रयास करता हूं, तो मेरे घटक में @Value
उसी तरह काम नहीं करता है। मान myService/sample
नहीं है लेकिन ${my.app.service}/sample
है।
@Configuration
@PropertySource(name="contextProperties", ignoreResourceNotFound=true, value={"classpath:context.properties"})
public class PropertiesConfiguration {
@Bean
public static PropertyPlaceholderConfigurer placeholder() throws IOException {
PropertyPlaceholderConfigurer placeholder = new PropertyPlaceholderConfigurer();
placeholder.setNullValue("@null");
placeholder.setSystemPropertiesMode(PropertyPlaceholderConfigurer.SYSTEM_PROPERTIES_MODE_OVERRIDE);
return placeholder;
}
}
क्या मुझे xml से Javaconfig में रूपांतरण में कुछ याद आया?
ps: मैं बिना किसी सफलता के PropertyPlaceholderConfigurer
के बजाय PropertySourcesPlaceholderConfigurer
को तुरंत चालू करने का प्रयास करता हूं।
भले ही यह आपकी समस्या का समाधान न करे, मैं पुष्टि कर सकता हूं कि आपको 'PropertySourcesPlaceholderConfigurer' का उपयोग करना चाहिए, न कि 'PropertyPlaceholderConfigurer' – superbob
' my.app.service' प्रॉपर्टी ठीक ठीक करें? '@Value (" $ {my.app.service} ") से जांचें, 'अगर मैं संपत्ति घोंसले से समस्या आती हूं तो मैं भटक जाता हूं। – superbob