- 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
- @Controller, @Service, @RepositorystarryeyeSpring이 제공하는 어노테이션 중.. @Controller, @Service, @Repository에 대해 알아보자.. 먼저 @Controller이다. @Component의 specialization이라 설명해주고 있다. @Component의 일종이므로, 컴포넌트 스캔에 의해 스프링 컨테이너에 자동으로 등록되는 빈이다. 그리고... handler method에 붙이는 @RequestMapping 어노테이션을 지원해줄 수 있다. 자매품으로 @RestController가 있다. @RestController = @Controller + @ResponseBody @Service이다. @Service 어노테이션은 그냥 @Component와 다를바가 없다. 개발자가 서비스 계층이라 명시 하고 싶을 때 사용한다...
- 2022-09-09 22:09:44
- 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
- Spring Core 마스터하기 1starryeyeSpring Core 기본기 개인학습 필기본 업로드 스프링의 핵심 기술을 정리하였다. 대략적인 설명 기술 //SpringCore1 스프링의 전반적인 활용도 //SpringCore2 스프링 빈, 스프링 컨테이너, 컴포넌트 스캔, 의존관계 자동 주입, 빈 생명주기 콜백, 빈 스코프,
- 2022-07-20 02:36:52
- DTO는 어느 패키지에 존재해야 할까?starryeyeDTO란 Data Transfer Object의 약자로 데이터 전송 객체이다. 데이터를 layer간 전달하는 용도로 사용된다. 참고로 VO라고 Value Object가 있는데 값자체를 표현 하기 위한 용도이다.. 값이 불변이다는 것이 특징이다. 값만 같다면 같은 객체라는 것이 보장되어야 하므로 hashcode, equals 메서드를 오버라이딩 하여 구현해주자. 본론으로 돌아와서.. DTO는 어느 패키지에 위치 시켜야 할까에 대해 알아보자. 위 그림은 일반적인 웹어플리케이션의 Contoller에서 Repository 까지의 계층을 나타낸다. 각 계층간 데이터를 전달하기 위한 DTO들이 보인다. Controller는 Service에 의존적이고.. Service는 Repository에 의존적이다. 일반적으로 ..
- 2022-07-17 02:37:13
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)