안녕세계
EventListener vs TransactionalEventListener 스프링 4.2 이상 버전에서 @EventListener와 @TransactionalEventListener 두 가지로 애플리케이션 이벤트를 수신할 수 있습니다. 두 어노테이션은 리스너 어노테이션이 설정된 메서드 인자의 이벤트 객체를 받아서 처리한다는 공통점이 있지만 약간의 차이 점이 존재합니다. 이번 포스팅에서는 두 어노테이션의 사용 방법과 차이 점을 살펴봅니다. 😊 EventListener 우선, EventListener는 애플리케이션에서 모든 타입의 이벤트를 수신하는 가장 단순한 방법입니다. EventListener는 트랜잭션에 참여하지 않으므로 트랜잭션 관련된 동작이 없으며 동기적으로 실행됩니다. 동기적으로 수행한다는 의..
안녕하세요. 지난 포스팅에서는 SpringBoot 환경에 MyBatis를 연동해보았습니다. 이번 포스팅에서는 SpringBoot 환경에서 MyBatis를 활용한 API 개발 예제에 대해 알아봅니다. JPA에서는 Entity 클래스를 생성하고, Entity에 대응되는 JpaRepository를 생성해주어야 하는데, MyBatis에서는 Mapper 인터페이스를 생성하고, Mapper 클래스에 대응되는 XML 파일을 만들어야합니다. 본 예제에서는 API 요청을 위한 Controller를 먼저 만들고, Controller에서 필요한 클래스부터 파일을 하나씩 생성해봅니다. 😎 1. Controller 클래스 생성 // kim.junhong.expmybatish2.api.test.controller @RestCon..
안녕하세요. 본 포스팅에서는 SpringBoot 환경에서 MyBatis와 데이터베이스를 연동하는 방법에 대해 설명합니다. 🧐 예제 프로젝트에서는 H2 데이터베이스를 사용합니다. IntelliJ에서 제공해주는 Spring Initalizr를 사용하여 Gradle 기반 Java8 버전 프로젝트를 생성합니다. (다음 화면은 Ultimate 버전만 제공하는 기능이므로, CE 버전을 사용하고 계시면 여기에서 생성하시면 됩니다.) 프로젝트 의존성으로 다음 내용을 추가해주세요. - [선택] Lombok - [필수] Spring Web - [필수] MyBatis Framework - [선택] H2 Database (MySQL과 같은 다른 RDMBS를 사용하셔도 됩니다.) 프로젝트를 생성하고 의존성을 다운로드하는 동안에..
이번 포스팅에서는 MacOS에서 H2 데이터베이스를 설치하고, H2 데이터베이스에서 에러 없이 실행하는 방법에 대해 알아보겠습니다! 🧐 H2 데이터베이스는 brew를 통해 쉽게 설치할 수 있습니다. (설치 끝!! 😊) $ brew install h2 h2 명령어로 데이터베이스를 실행할 수 있습니다. $ h2 h2 명령어를 실행하면 자동으로 브라우저에 :8082로 접속됩니다. 로딩만 되고 접속이 안되는 경우 localhost:8082로 접속하면 정상적으로 접속되는 것을 확인할 수 있습니다. jsessionid 파라미터는 유지해주세요! 여기서 연결 또는 연결 시험 버튼을 누르면 다음과 같은 에러가 발생할 수 있습니다. Database "~/test" not found, either pre-create it ..
SpringBoot 앱을 개발환경(Development/Production)을 나누어 배포하는 방법에 대해 알아봅니다 🤩 (본 포스팅에서는 SpringBoot + Gradle + Docker를 사용합니다.) 1. Spring Initializr에서 dependency로 Spring Web만 추가하여 Gradle Project를 생성합니다. 2. application.properties를 application.yaml 파일로 변경후 application-{profile}.yaml 형식의 파일을 생성합니다. (properties 파일을 선호하는 경우 변경하지 않아도 됩니다.) 3. application-dev.yaml과 application-prod.yaml 파일은 개발환경과 운영환경의 셋팅을 달리하기 위함..