[SPRING] 스프링 부트는 문자열에서 자리 표시자를 해결할 수 없습니다.
SPRING스프링 부트는 문자열에서 자리 표시자를 해결할 수 없습니다.
mvn clean install spring-boot :를 실행하여 maven을 통해 임베디드 tomcat 서버에서 spring-boot를 실행하고 있습니다. 그러나 내가 그것을 실행할 때마다 나는이 오류를 얻는다.
그 오류는 다음 두 줄의 코드에 관한 것입니다.
@Value("${language}")
private String language;
해당 언어 플래그는 내 application.properties에 다음과 같이 지정됩니다.
application.properties
language=java
logging.level.org.springframework=TRACE
이것은 혼란스러운 부분입니다. spring-boot : run 명령을 사용하지 않고 빌드를 실행하면 올바르게 빌드되고 전혀 빌드 된 jar 파일을 실행할 수 없습니다. 이 문제에 직면 한 임베디드 tomcat 서버에서 실행하려고 할 때만입니다.
내 코드에서 이렇게하면 일종의 우회 할 수 있습니다.
@Value("${language:java}")
private String language;
하지만 스프링은 application.properties 파일의 기본값을 자동으로 읽어야하기 때문에 저에게는 의미가 없습니다.
편집 : 사람들이 지적한대로 embedded.catcat 서버에서 실행할 때 application.properties를 전혀 읽지 않습니다. 파일을 읽도록 강제하는 방법이나 읽지 못할 수도있는 이유는 무엇입니까? 내장 된 서버가 아닌 외부의 응용 프로그램 서버에 배포 할 때 제대로 작동합니다.
도움을 위해 미리 감사드립니다.
해결법
-
==============================
1.이 줄을
섹션의 pom에 추가하여 수정했습니다. 이 줄을
섹션의 pom에 추가하여 수정했습니다. <resource> <directory>src/main/resources</directory> <filtering>true</filtering> <includes> <include>**/*.properties</include> </includes> </resource>
내가 완전히 이해하지 못하는 것은 이것을하기위한 필요성이다.
a)이 줄을 추가 할 필요없이 외부 응용 프로그램 서버에서 실행할 수 있으며 응용 프로그램은 application.properties를 잘 읽습니다.
b) Eclipse에서 독립 실행 형 Java 응용 프로그램으로 응용 프로그램을 실행할 수 있습니다 (즉, Maven을 통해 응용 프로그램을 빌드 할 필요없이). 응용 프로그램 속성을 잘 읽습니다.
c) 스프링 부트가 기본값에 상관없이 읽히지 않아야합니까? (위의 두 가지 경우에 표시된 것처럼?)
도움을 주신 모든 분들께 감사드립니다. 희망적으로 이것은 다른 사람들을 도울 것입니다.
-
==============================
2.우연히 Eclipse에서 이것을 실행 했습니까?
우연히 Eclipse에서 이것을 실행 했습니까?
나는 같은 문제를 가지고 있었고 그 프로젝트가 Maven 특성을 가지고 있지 않다는 것을 알았다. 프로젝트 -> 구성 -> Maven 프로젝트로 마우스 오른쪽 버튼을 클릭하십시오. 그런 다음 프로젝트 -> Maven-> Update Project에서 마우스 오른쪽 버튼을 클릭하여 문제를 해결하십시오.
-
==============================
3.pom.xml 파일의 위의 변경 사항이 여전히 문제를 해결하지 못하면 아래 옵션을 시도하십시오.
pom.xml 파일의 위의 변경 사항이 여전히 문제를 해결하지 못하면 아래 옵션을 시도하십시오.
클래스 상단에 @PropertySource 주석을 추가하십시오.
@PropertySource( { "classpath:/application.properties", "classpath:/${spring.profiles.active}/application-${spring.profiles.active}.properties" }
)
그래도 해결되지 않으면 다음 주석을 추가하십시오.
@EnableAutoConfiguration
인사말
from https://stackoverflow.com/questions/48158249/spring-boot-could-not-resolve-placeholder-in-string by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 사용자 정의 속성 편집기가 Spring MVC의 요청 매개 변수에 대해 작동하지 않습니까? (0) | 2019.04.12 |
---|---|
[SPRING] Spring과 Hibernate를 이용한 다중 데이터베이스 트랜잭션 관리 (0) | 2019.04.12 |
[SPRING] Spring 4 with thymeleaf 국제화는 자원 특성 파일에서 메시지를 식별하지 못함 (0) | 2019.04.12 |
[SPRING] 메타 주석 및 테스트 클래스에서 @ActiveProfiles가 작동하지 않음 (0) | 2019.04.12 |
[SPRING] 스프링 MVC 폼 유효성 검사가 작동하지 않습니다. (0) | 2019.04.12 |