Spring @Value가 속성 파일의 값으로 확인되지 않습니다.
이전에 다른 프로젝트에서이 작업을 수행 한 적이 있습니다. 동일한 작업을 다시 수행하고 있지만 어떤 이유로 작동하지 않습니다. Spring @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;
응용 프로그램은 정상적으로 시작되지만 시작하면
appConfig.getValue()
그것은 반환
${key.value1}
속성 파일 내의 값으로 확인되지 않습니다.
생각?
나는 또한 그 이유를 찾을 @value
작동하지 않는 것입니다, @value
필요 PropertySourcesPlaceholderConfigurer
대신의 PropertyPlaceholderConfigurer
. 나는 똑같은 변경을했고 그것은 나를 위해 일했으며 봄 4.0.3 릴리스를 사용하고 있습니다. 내 구성 파일에서 아래 코드를 사용하여 구성했습니다.
@Bean
public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
return new PropertySourcesPlaceholderConfigurer();
}
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
In my case, static fields will not be injected.
for Sprig-boot User both PropertyPlaceholderConfigurer and the new PropertySourcesPlaceholderConfigurer added in Spring 3.1. so it's straightforward to access properties file. just inject
Note: Make sure your property must not be Static
@Value("${key.value1}")
private String value;
In my case I was missing the curly braces. I had @Value("foo.bar") String value
instead of the correct form @Value("${foo.bar}") String value
I was using spring boot, and for me upgrading the version from 1.4.0.RELEASE
to 1.5.6.RELEASE
solved this issue.
Have a read of pedjaradenkovic's comment.
Further to the link he provides, the reason this isn't working is that @Value
processing requires a PropertySourcesPlaceholderConfigurer
instead of a PropertyPlaceholderConfigurer
.
ReferenceURL : https://stackoverflow.com/questions/15937592/spring-value-is-not-resolving-to-value-from-property-file
'IT이야기' 카테고리의 다른 글
첫 번째 열이 문자열이고 나머지 열이 숫자 일 때 numpy.genfromtxt를 사용하는 방법은 무엇입니까? (0) | 2021.04.15 |
---|---|
Passport.js 인증 실패시 JSON 응답을 다시 보내기 (0) | 2021.04.15 |
Spring JUnit : autowired component에서 autowired component를 모의하는 방법 (0) | 2021.04.14 |
나머지 세로 공간 채우기-CSS (0) | 2021.04.14 |
사설 git 서버 (SSH)를 사용하여 bower 패키지를 설치하는 방법 (0) | 2021.04.14 |