- Spring Transaction 4starryeye트랜잭션 내부 로직 수행도중... 예외가 터지면 어떻게 될까..? 예외가 발생할 경우의 트랜잭션 처리에 대해 알아보자.. 앞선 @Controller, @Service, @Repository 포스팅에서 잠시 알아보긴 했었다.. https://starryeye.tistory.com/97 더 자세하게 알아보자.. 스프링 트랜잭션 AOP는 예외 종류에 따라 트랜잭션을 커밋하거나 롤백한다. Java의 예외 이전 포스팅 https://starryeye.tistory.com/52 참조 언체크 예외(RuntimeException, Error와 그 하위 예외) -> 트랜잭션 롤백 체크 예외(Exception과 그 하위 예외) -> 트랜잭션 커밋 스프링은 기본적으로 체크 예외는 비즈니스 의미가 있을 때 사용하고, 언체크 ..
- 2022-09-28 22:16:00
- Spring Transaction 3starryeye트랜잭션의 옵션 value 요소, transactionManager 요소 트랜잭션 매니저를 둘 이상 사용할 경우에 사용된다. 트랜잭션 프록시가 사용할 트랜잭션 매니저를 지정해 줄 수 있다. 트랜잭션 매니저의 스프링 빈 이름을 기입하면 된다. 생략 가능하며, 생략할 경우 기본으로 등록된 트랜잭션 매니저가 사용된다. ex. @Transaction("TxM") (어노테이션에서 요소가 하나인 경우, value는 생략가능) rollbackFor 요소 스프링 트랜잭션은... 언체크 예외가 발생하면 롤백하고, 체크 예외가 발생하면 커밋한다. 하지만.. 커밋하고 싶지 않은 체크예외가 있을 수 있다. 이 때 사용된다. ex. @Transaction(rollbackFor = Exception.class) -> 모든 예외를..
- 2022-09-22 22:57:00
- Spring Transaction 2starryeye트랜잭션 AOP 주의사항에 대해 알아보자. 1. 동일 클래스에서 내부 @Transaction 메서드 호출 @Component class Service { @Transaction public void A() { } public void B() { A(); } } @Component @RequiredArgsConstructor class Controller { private final Service s; public void X() { s.A(); } public void Y() { s.B(); } } Service 클래스에서 A() 메서드에 @Transaction 어노테이션이 적용되어있다. B() 메서드는 @Transaction 어노테이션이 적용되어 있지 않고 내부에서 A()를 호출하고 있다. Contro..
- 2022-09-22 22:26:19
- Spring Transaction 1starryeye트랜잭션을 공부하기 앞서.. 순수 JDBC를 사용할 경우에 트랜잭션을 처리하는 법과 JPA를 사용할 경우에 트랜잭션을 처리하는 법에 대해 잠깐 복습해보자. 순수 JDBC 트랜잭션 Connection con = dataSource.getConnection(); try { con.setAutoCommit(false); //트랜잭션 시작 //비즈니스 로직 con.commit(); //비즈니스 로직 성공 시.. }catch(Exception e) { con.rollback(); //비즈니스 로직 실패 시.. throw new IllegalStateException(e); }finally { release(con); } JPA 트랜잭션 //Entity 매니저 팩토리 생성 EntityManagerFactory em..
- 2022-09-22 21:44:34
- JPA 찍먹 1starryeyeJPA에 대해 학습해보자.. 스프링과 JPA는 자바 엔터프라이즈 시장의 주력 기술이다. 스프링과 JPA는 각각 아래를 제공한다. 스프링은 DI 컨테이너를 포함한 애플리케이션 전반의 기능을 제공 JPA는 ORM(Object - Relational Mapping) 데이터 접근 기술을 제공 Jdbc를 사용한 데이터 접근 기술은 크게 3가지로 나뉜다. 1. Jdbc를 개발자가 직접 사용 2. SQL Mapper 기술을 사용 3. ORM 기술을 사용 해당 기술에 대한 간략한 정리는 이전 포스팅을 참고하자.. https://starryeye.tistory.com/44 JDBC 2 JDBC를 사용한 데이터 접근 기술은 크게 3가지로 나뉜다. 1. JDBC를 직접 사용 2. SQL Mapper 3. ORM 기술 JDB..
- 2022-09-09 21:33:59
- MyBatis 1starryeyeMyBatis는 JdbcTemplate보다 더 많은 기능을 제공하는 SQL Mapper이다. 가장 큰 장점 SQL을 XML에 편리하게 작성할 수 있다. 동적 쿼리를 편리하게 작성할 수 있다. MyBatis 공식 사이트 MyBatis – 마이바티스 3 | 소개 MyBatis – 마이바티스 3 | 소개 마이바티스는 무엇인가? 마이바티스는 개발자가 지정한 SQL, 저장프로시저 그리고 몇가지 고급 매핑을 지원하는 퍼시스턴스 프레임워크이다. 마이바티스는 JDBC로 처리하는 상당부분의 코드와 mybatis.org MyBatis 스프링 공식 메뉴얼 https://mybatis.org/spring/ko/index.html mybatis-spring – 소개 MyBatis-Spring 은 무엇일까? 마이바티스 스프링 연..
- 2022-08-23 01:35:34
- JdbcTemplate 1starryeye스프링이 제공하는 JdbcTemplate은 JDBC를 편리하게 사용할 수 있도록 도와준다 JdbcTemplate 장점 1. spring-jdbc 라이브러리에 포함. (JDBC 기본 라이브러리) 2. 템플릿 콜백 패턴으로 대부분의 반복 작업을 대신 처리 해준다. - 커넥션 조회, 커넥션 동기화 - preparedStatement 생성 및 파라미터 바인딩 - 쿼리 실행 - 결과 바인딩 - 예외 발생 시, 스프링 예외 변환기 실행 - 리소스(커넥션, statement, resultset) 종료 JdbcTemplate 단점 동적 SQL 해결 어려움 (-> MyBatis를 사용하자) JdbcTemplate 순서 기반 파라미터 바인딩을 지원한다. NamedParameterJdbcTemplate 이름 기반 파라미터 ..
- 2022-08-09 23:22:24
- JDBC 10starryeye지금까지 내용으로는.. service 계층의 순수함이 유지 하게 되었고.. repository 계층에서는.. JDBC를 사용하기에.. 다른 메서드 임에도.. 동일한 반복코드가 많다.. 이를 해결해보자. 반복코드 1. 커넥션 조회, 커넥션 동기화 2. preparedStatement 생성 및 파라미터 바인딩 3. 쿼리 실행 4. 결과 바인딩 5. 예외 발생 시, 스프링 예외 변환기 실행 6. 리소스 종료 템플릿 콜백 패턴으로 해결 JdbcTemplate JdbcTemplate을 사용하면.. 위 반복코드가 대부분 사라지며, 커넥션 동기화, 스프링 예외 변환기도 자동으로 실행 해준다. 기본적으로 SQL Mapper 방식이다.
- 2022-07-16 01:58:28
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)