Issue
I've had this working in some other project before, I am just re-doing the same thing but for some reason it's not working. The Spring @Value
is not reading from property file, but instead it's taking the value literally
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
In my controller, where I have:
@Autowired
private AppConfig appConfig;
The application starts just fine, but when I do
appConfig.getValue()
it returns
${key.value1}
It doesn't resolve to the value inside the properties file.
Thoughts?
Solution
Problem is due to problem in my applicationContext.xml vs spring-servlet.xml - it was scoping issue between the beans.
pedjaradenkovic kindly pointed me to an existing resource: Spring @Value annotation in @Controller class not evaluating to value inside properties file and Spring 3.0.5 doesn't evaluate @Value annotation from properties
Answered By - TS-
Answer Checked By - Terry (JavaFixing Volunteer)