Spring64 스프링 트랜잭션 이해 스프링은 트랜잭션을 추상화해서 제공한다. 개발자는 필요한 구현체를 스프링 빈으로 등록하고 주입 받아서 사용하면 된다. JdbcTemplate , MyBatis 를 사용하면 DataSourceTransactionManager(JdbcTransactionManager) 를 스프링 빈으로 등록하고, JPA를 사용하면 JpaTransactionManager 를 스프링 빈으로 등록해준다. PlatformTransactionManager 를 사용하는 방법 선언적 트랜잭션 관리 (Declarative Transaction Management) @Transactional 애노테이션 하나만 선언 프로그래밍 방식의 트랜잭션 관리 (Programmatic Transaction Management) 트랜잭션 매니저 또는 트랜.. 2023. 8. 11. 데이터 접근 기술 - 활용 방안 스프링 데이터 JPA 예제와 트레이드 오프 고민 구조를 맞추기 위해서, 중간에 어댑터가 들어가면서 전체 구조가 너무 복잡해지고 사용하는 클래스도 많아지는 단점이 생겼다. 실제 이 코드를 구현해야하는 개발자 입장에서 보면 중간에 어댑터도 만들고, 실제 코드까지 만들어야 하는 불편함이 생긴다. DI, OCP 원칙을 지킬 수 있다는 좋은 점이 분명히 있다. 하지만 구조가 복잡해지면서 어댑터 코드와 실제 코드까지 함께 유지보수 해야 하는 어려움도 발생한다. 다른 선택 ItemService 코드를 일부 고쳐서 직접 스프링 데이터 JPA를 사용하는 방법이다. DI, OCP 원칙을 포기하는 대신에, 복잡한 어댑터를 제거하고, 구조를 단순하게 가져갈 수 있는 장점이 있다. 트레이드 오프 DI, OCP를 지키기 위해 어.. 2023. 8. 11. 데이터 접근 기술 - Querydsl Querydsl 설정 Querydsl SpringBoot 2.7 build.gradle https://www.inflearn.com/chats/669477/querydsl-springboot-2-7%EC%9D%98-gradle-%EC%84%A4%EC%A0%95%EC%9D%84-%EA%B3%B5%EC%9C%A0%ED%95%A9%EB%8B%88%EB%8B%A4 QueryDsl SpringBoot 2.7의 gradle 설정을 공유합니다. - 인프런 | 고민있어요 plugins { id 'org.springframework.boot' version '2.7.4' id 'io.spring.dependency-management' version '1.0.14.RELEASE' id 'java' } group = 's.. 2023. 8. 11. 데이터 접근 기술 - 스프링 데이터 JPA JpaRepository 사용법 public interface ItemRepository extends JpaRepository { } JpaRepository 인터페이스를 인터페이스 상속 받고, 제네릭에 관리할 를 주면 된다. JpaRepository 가 제공하는 기본 CRUD 기능을 모두 사용 가능 스프링 데이터 JPA가 제공하는 쿼리 메소드 기능 조회: find...By , read...By , query...By , get...By ex) findHelloBy 처럼 ...에 식별하기 위한 내용(설명)이 들어가도 된다. COUNT: count...By 반환타입 long EXISTS: exists...By 반환타입 boolean 삭제: delete...By , remove...By 반환타입 long .. 2023. 8. 11. 이전 1 2 3 4 5 6 7 8 ··· 16 다음