스프링 부트에서 application.properties에서 application.yml로 변환하는 방법은 무엇입니까?
저는 매우 간단한 Spring Boot 앱과 application.properties를 가지고 있으며, 이제 application.yml로 이동하고 싶습니다.
다음은 application.yml 파일입니다.
spring:
datasource:
url: jdbc:mysql://localhost:3306/employee_directory
username: student
password: Password123
그래서 application.properties 파일을 삭제하고 application.yml 파일을 작성했습니다.앱을 실행하면 다음과 같은 예외가 발생합니다.
20:31:22.446 [restartedMain] ERROR org.springframework.boot.SpringApplication - Application run failed
java.lang.IllegalStateException: Failed to load property source from location 'classpath:/application.yml'
at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.load(ConfigFileApplicationListener.java:524)
at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.loadForFileExtension(ConfigFileApplicationListener.java:473)
at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.load(ConfigFileApplicationListener.java:443)
at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.lambda$null$6(ConfigFileApplicationListener.java:425)
at java.lang.Iterable.forEach(Iterable.java:75)
at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.lambda$load$7(ConfigFileApplicationListener.java:425)
at java.lang.Iterable.forEach(Iterable.java:75)
at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.load(ConfigFileApplicationListener.java:422)
at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.load(ConfigFileApplicationListener.java:321)
at org.springframework.boot.context.config.ConfigFileApplicationListener.addPropertySources(ConfigFileApplicationListener.java:202)
at org.springframework.boot.context.config.ConfigFileApplicationListener.postProcessEnvironment(ConfigFileApplicationListener.java:186)
at org.springframework.boot.context.config.ConfigFileApplicationListener.onApplicationEnvironmentPreparedEvent(ConfigFileApplicationListener.java:176)
at org.springframework.boot.context.config.ConfigFileApplicationListener.onApplicationEvent(ConfigFileApplicationListener.java:164)
at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)
at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:127)
at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:75)
at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:53)
at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:340)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:304)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1213)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1202)
at com.dgs.springboot.SpringBootRESTJPA.SpringBootRestJPAApplication.main(SpringBootRestJPAApplication.java:10)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49)
Caused by: org.yaml.snakeyaml.scanner.ScannerException: while scanning for the next token
found character '\t(TAB)' that cannot start any token. (Do not use \t(TAB) for indentation)
in 'reader', line 2, column 1:
datasource:
^
at org.yaml.snakeyaml.scanner.ScannerImpl.fetchMoreTokens(ScannerImpl.java:419)
at org.yaml.snakeyaml.scanner.ScannerImpl.checkToken(ScannerImpl.java:227)
at org.yaml.snakeyaml.parser.ParserImpl$ParseBlockMappingValue.produce(ParserImpl.java:586)
at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:158)
at org.yaml.snakeyaml.parser.ParserImpl.checkEvent(ParserImpl.java:148)
at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:124)
at org.yaml.snakeyaml.composer.Composer.composeValueNode(Composer.java:236)
at org.yaml.snakeyaml.composer.Composer.composeMappingChildren(Composer.java:227)
at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:215)
at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:144)
at org.yaml.snakeyaml.composer.Composer.getNode(Composer.java:85)
at org.yaml.snakeyaml.constructor.BaseConstructor.getData(BaseConstructor.java:123)
at org.yaml.snakeyaml.Yaml$1.next(Yaml.java:547)
at org.springframework.beans.factory.config.YamlProcessor.process(YamlProcessor.java:160)
at org.springframework.beans.factory.config.YamlProcessor.process(YamlProcessor.java:134)
at org.springframework.boot.env.OriginTrackedYamlLoader.load(OriginTrackedYamlLoader.java:75)
at org.springframework.boot.env.YamlPropertySourceLoader.load(YamlPropertySourceLoader.java:49)
at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.loadDocuments(ConfigFileApplicationListener.java:542)
at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.load(ConfigFileApplicationListener.java:497)
... 28 common frames omitted
이 application.yml 파일을 사용하려면 코드를 수정해야 할 것 같은데 어떻게 해야 할지 모르겠습니다.
다음은 pom.xml입니다.
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.6.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.dgs.springboot</groupId>
<artifactId>SpringBootRESTHibernate</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>SpringBootRESTHibernate</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
<!-- Add work around for Eclipse bug -->
<maven-jar-plugin.version>3.1.1</maven-jar-plugin.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<!-- This is used for packaging and running our app -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
어떤 피드백이든 감사하겠습니다.감사해요!
스프링부츠의 완화된 바인딩 규칙을 사용하여 스프링부츠 yaml, 속성 및 환경 변수를 변환하는 온라인 변환 도구(https://env.simplestep.ca/) 를 구축했습니다.
위해서intellij-IDEA
> settings > 한 후 다음과 같은 합니다: 파일 > 설으로 > 플인이동 후다검니같색합.Properties to YAML Converter
시작한 오른쪽 단추로 하면 " to 이라는.
들여쓰기에 탭을 사용하는지 확인합니다.이는 YAML 사양에서 허용되지 않습니다.
시스템마다 탭을 다르게 취급하므로 휴대성을 유지하기 위해 들여쓰기에 탭 문자를 사용해서는 안 됩니다.대부분의 최신 편집기는 탭 키를 누르면 적절한 수의 공백이 삽입되도록 구성될 수 있습니다.
명령줄 도구 properties2yaml을 사용하여 속성에서 yaml로 일반적인 자동(및 수정) 변환을 수행할 수 있습니다.
부동산을 YAML로 전환할 수 있는 좋은 온라인 도구를 찾았습니다.
Eclipse 또는 STS를 사용하면 매우 간단합니다.
의상에맞메열하기됩니다면만뉴를는에서 만 하면 ..properties
파일을 선택하고 "Maml 파일로 변환"을 선택합니다.
파일이 자동으로 변환됩니다.상황에 맞는 메뉴에 이 기능이 없으면 Yaml 플러그인을 설치해야 합니다.
Help menu-> Eclipse market place.
내 생각엔 너의datasource.url
따옴표로 .사용해 보십시오.
...
url: 'jdbc:mysql://localhost:3306/employee_directory'
...
또한 위에서 지적했듯이 들여쓰기에는 일반적으로 수준당 두 개의 공백을 사용해야 합니다.
행운을 빕니다.
이것은 다른 개발자들에게 도움이 될 수 있는 추가적인 답변일 뿐입니다.
속성 파일을 YML 파일로 변환하는 더 좋고 쉬운 도구를 찾았습니다. 속성에서 yml로 변환합니다.
.properties 파일을 업로드한 다음 Choose To YML file 옵션을 업로드해야 합니다. 그러면 꽤 좋은 yml 파일이 생성됩니다.이 도구는 Yml to XML, Yml to Properties, CSV, JSON 등과 같은 많은 다른 형식도 지원합니다.
파일application.yml
루트 폴더에 있어야 합니다.resources
.
IntelliJ에서 실행되는 Spring 프로젝트에서 비슷한 답을 찾는 다른 사람들에게는 application.properties의 확장자를 application.yml로 변경하는 것만으로 작동합니다.제 경우 파일이 비어 있어서 아무것도 변경할 필요가 없었고 application.yml을 제대로 사용할 수 있었습니다.
언급URL : https://stackoverflow.com/questions/57465865/how-to-convert-from-application-properties-to-application-yml-in-spring-boot
'programing' 카테고리의 다른 글
MongoDB - 텍스트 필드의 인덱스와 텍스트 인덱스의 차이? (0) | 2023.07.02 |
---|---|
두 표의 데이터를 하나의 보기로 변환 (0) | 2023.07.02 |
단일 값 이벤트에 대한 Firebase 오프라인 기능 및 청취자 추가 (0) | 2023.07.02 |
cshtml 파일에서 TypeScript 사용 (0) | 2023.07.02 |
그룹 수를 사용하여 $group 결과를 얻는 중 (0) | 2023.07.02 |