application.yml 파일이 아니라 다른 profile을 디폴트로 설정하고 싶을 때 application.yml나 application.properties에 profile 설정을 추가하지 않고 Intellij에서 설정할 수 있다. 1. Edit Configurations 클릭 2. Active profiles에 profile 이름 추가 ex) application-local.yml인 경우 local 추가
이 에러가 발생하는 이유는 본 포스팅 외에도 많아서 다른 이유일 수 있음. 오류 발생 이유) 이미 IPv4 주소인 127.0.0.1을 hostname으로하는 커넥션을 생성했는데 또 127.0.0.1을 hostname으로 하는 커넥션을 생성함. 이때 같은 hostname이고 port까지 같아서 같은 커넥션임. 여기서 두 커넥션의 비번을 다르게 설정했기 때문에 한쪽의 커넥션은 연결이 안되는 것. 아무생각 없이 왜 안되지 하다가 127.0.0.1 대신 localhost로 바꾸었더니 갑자기 연결이 됨.이 경우 localhost가 IPv6 주소인 ::1로 매핑이 되었기 때문에 다른 커넥션으로 인식되서 연결이 된 것.(localhost는 기본적으로 IPv4, IPv6 둘다 매핑이 가능)해결) port가 같으면 당연..
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'hello.itemservice.config.MemoryConfig': Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCurrentlyInCreationException: Error creating bean with name 'hello.itemservice.config.MemoryConfig': Requested bean is currently in creat..
Spring Boot는 Spring Framework를 기반으로 하는데, Spring Framework 6.1부터 BeanDefinition의 factoryBeanObjectType 속성이 String 타입의 값을 받을 수 없게 변경되었다. Springboot 버전을 3.2.*로 하면 된다고 했는데, 나는 이미 3.2.2 버전이었다. mybatis버전을 사람들이 가장 많이 다운로드한 좀 덜(?) 최신버전인 2.2.2 버전으로 쓰고 있었는데 이걸 완전 최신버전으로 바꿔줬다. -> 해결 ※ ./gradlew dependencies를 통해 의존성을 확인했을 때 호환성 문제가 없어도 패키지 버전 문제일 수 있다. (호환되는 것 같지만 사실은 호환이 되지 않는..) 참고) https://github.com/my..
run: ./gradlew test -i # 모든 로그 출력 Spring boot 프로젝트에서 api key를 application.yml파일에 저장한 뒤 이를 스프링이 제공하는 @Value 애노테이션으로 불러오는 방식으로 api key를 사용했다. (application.yml 파일은 git에 올리지 않음) Push / PR 시 빌드 및 테스트를 진행하기 위해 github action을 사용하기로 했다. 그런데 github action workflow를 통해 빌드를 하면 에러가 발생했다. 처음에는 api key문제는 절대 아닌 거라고 생각했다. @Value를 통해 api key를 읽어오는 작업은 Spring Context를 불러오는 거랑 상관이 없다고 생각했다. 그냥 해당 api key를 사용할 때 동..
스프링 부트를 Gradle로 빌드했을 때 이런 에러가 발생했었다. 이미 포트가 사용중이라는 의미이다. Spring boot를 쓰면 기본적으로 Tomcat을 쓰는데, 이때 따로 설정하지 않으면 8080 포트를 사용하게 된다. 터미널에서 lsof -i :8080을 쳤더니 이렇게 나왔다. 다른 프로그램에서 8080 포트를 사용하고 있지 않았는데 왜 8080 포트를 사용중일까? Gradle로 빌드를 수행한 후 종료 하면 이렇게 포트만 사용중인 체로 남게 된다. 왜 그런지는 모르겠다. lsof -9 PID로 이것들을 지워준다. 이렇게 포트를 비워준 뒤 다시 실행하면 에러가 발생하지 않는다. 근데 사실 굳이 Gradle로 빌드할 필요가 없으면 이렇게 Intellij IDEA로 빌드 환경을 설정하면 된다.