위치 'class path resource [application-dev.yml]에서 가져온 속성 'spring.profiles.active'가 잘못되었습니다.
스프링 클라우드 애플리케이션을 최신 스프링 부트 버전 2.5.0으로 업데이트했습니다.
다만, 기동시에 다음의 예외가 발생합니다.
11:05:05.038 [main] ERROR org.springframework.boot.SpringApplication - Application run failed
org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property 'spring.profiles.active' imported from location 'class path resource [application-dev.yml]' is invalid in a profile specific resource [origin: class path resource [application-dev.yml] from skyshop-mail-1.0.jar - 42:17]
at org.springframework.boot.context.config.InvalidConfigDataPropertyException.lambda$throwOrWarn$1(InvalidConfigDataPropertyException.java:125)
application.yml
spring:
application:
name: mail-service
profiles:
active: dev
application-dev.yml 파일:
logging:
file:
name: ${java.io.tmpdir}/application.log
level:
com:
backend: DEBUG
org:
springframework: DEBUG
springframework.web: DEBUG
jwt:
expiration: 86400
secret: test112322
server:
port: 8020
servlet:
context-path: /mail
spring:
application:
name: mail-service
profiles:
active: local
data:
web:
pageable:
one-indexed-parameters: true # Fix pagination starting number to start from 1
rest:
basePath: /mail
jackson:
default-property-inclusion: non_null
jmx:
enabled: false
datasource:
url: jdbc:mariadb://localhost:3306/database
driverClassName: org.mariadb.jdbc.Driver
jpa:
hibernate:
ddl-auto: update
properties:
hibernate:
dialect: org.hibernate.dialect.MariaDBDialect
show-sql: true
username: root
password: qwerty
oauth2:
resource:
jwt:
key-pair:
alias: mytestkey
store-password: mystorepass
info:
build:
version: 1.0
eureka:
client:
serviceUrl:
defaultZone: ${EUREKA_URI:http://localhost:8761/eureka}
instance:
preferIpAddress: true
이 문제를 어떻게 해결할 수 있는지 아세요?
Spring Boot 2.4에서는 application.properties 및 application.yml 파일의 처리 방법이 개선되었습니다.
상세한 것에 대하여는, https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-Config-Data-Migration-Guide 를 참조해 주세요.
요약하면: 예를 들어 application-local.yml이 있고, 그 안에 정의되어 있는 경우
spring:
profiles:
active: local
yaml 파일에서 이 엔트리를 삭제합니다.
파일명이 application-dev.yml(spring boot new version)인 경우 spring.profiles.active 속성은 언급할 필요가 없습니다.
새로운 Spring Boot Version은 환경에 따라 명명 규칙이 매우 엄격합니다.런타임 중에는 응용 프로그램 속성을 삽입할 수 없습니다.활성 프로파일을 기반으로 선택되는 각 환경에 대해 application-{env.properties를 생성해야 합니다.
다만, 이러한 변경을 모두 실시할 수 없는 경우는, 낡은 프로세서를 사용할 수도 있습니다.Spring Boot을 실행하는 동안 아래를 JVM 아그리게이션으로 추가합니다.Docker를 사용하는 경우 Dockerfile Entrypoint에도 추가해야 합니다.
-Dspring.config.use-legacy-processing=true
버전 2.4(스프링 부트 2.4) 이후:
프로파일별 문서에서 프로파일을 더 이상 활성화할 수 없습니다.
https://spring.io/blog/2020/08/14/config-file-processing-in-spring-boot-2-4
향후의 한 가지 방법은spring.profiles.group.*
부터
application-dev.yml
삭제:profiles: active: local
이름을 바꾸다
application-dev.yml
->application-dev123.yml
인
application.properties
그룹 "dev" 정의:spring.profiles.group.dev=local,dev123
이제 "dev"라는 이름의 그룹이 "dev"라는 이름의 이전 프로파일을 대체합니다.
application-dev.yml에서 다음과 같이 선언합니다.
spring:
application:
name: mail-service
profiles:
active: local
2가지 솔루션:
- application-dev.yml의 이름을 application-local.yml로 변경하고 로컬프로파일을 사용합니다.
- application-dev.yml에서 spring.dev.active를 dev로 변경합니다.
언급URL : https://stackoverflow.com/questions/67935961/property-spring-profiles-active-imported-from-location-class-path-resource-a
'programing' 카테고리의 다른 글
WP_Query에서 날짜별로 주문하는 방법? (0) | 2023.02.28 |
---|---|
mongoDB/mongoose: 늘이 아닌 경우 고유 (0) | 2023.02.23 |
Json을 사용한 JSON 배열 해석그물 (0) | 2023.02.23 |
플라이웨이와 스프링 부트 통합 (0) | 2023.02.23 |
Spring Boot 어플리케이션 부팅 시 Gson Builder 오류가 발생하는 이유는 무엇입니까? (0) | 2023.02.23 |