본문 바로가기

전체 글111

[스프링의 정석] Transactional 아 글 수정 하려다가 실수로 지워버려서 복구할 방법이 없어서 다시 작성하게 된다 ㅡㅡ 짜증나지만 어쩌겠나.. @Transactional의 속성 속성 설명 propagation Tx의 경계(boundary)를 설정하는 방법을 지정 isolation Tx의 isolation level을 지정. Default, READ_UNCOMMITED, READ_COMMITTED, REPEATABLE_READ, SERIALIZABLE readOnly Tx이 데이터를 읽기만 하는 경우, true로 지정하면 성능이 향상 rollbackFor 지정된 예외가 발생하면, Tx을 rollback RuntimeException과 Error는 자동 rollback noRollbackFor 지정된 예외가 발생해도, Tx을 rollback.. 2023. 4. 24.
[스프링의 정석] AOP의 개념과 용어 1. 공통 코드의 분리 위와 같이 공통된 부분이 있는 코드가 있다고 한다면 import java.lang.reflect.Method; import java.util.regex.Matcher; import java.util.regex.Pattern; public class AopMain { public static void main(String[] args) throws Exception { MyAdvide myAdvide = new MyAdvide(); Class myClass = Class.forName("com.springmvcstudy.ch3.aop.MyClass"); Object obj = myClass.newInstance(); for (Method m : myClass.getDeclaredMe.. 2023. 4. 21.
[스프링의 정석] Transaction, Commit, Rollback 1. Transaction 이란? 더이상 나눌 수 없는 작업의 단위 계좌이체의 경우, 출금과 입금이 하나의 Tx로 묶여야함 '모'아니면 '도'. 출금과 입금이 모두 성공하지 않으면 실패 2. Transaction의속성 ‒ ACID 원자성(Atomicity) – 나눌 수 없는 하나의 작업으로 다뤄져야 한다. 일관성(Consistency) – Tx 수행 전과 후가 일관된 상태를 유지해야 한다. 고립성(Isolation) – 각 Tx는 독립적으로 수행되어야 한다. 영속성(Durability) – 성공한 Tx의 결과는 유지되어야 한다. 3. 커밋(commit)과롤백(rollback) 커밋(commit) – 작업 내용을 DB에 영구적으로 저장 롤백(rollback) – 최근 변경사항을 취소(마지막 커밋으로 복귀).. 2023. 4. 21.
[스프링의 정석] Spring DI 활용하기 / @annotation 1. 빈 (Bean) 이란? JavaBeans - 재사용 가능한 컴포넌트, 상태( iv ), getter&setter, no-args constructor Servlet & JSP Bean - MVC의 Model, EL, scope, JSP container가 관리 EJB ( Enterprise Java Beans ) - 복잡한 규칙, EJB container가 관리 Spring Bean - POJO ( Plain Old Java Object ) 단순, 독립적, Spring container가 관리 2. BeanFactory와 ApplicationContext Spring container가 관리하는 객체 Spring container - Bean 저장소, Bean을 저장, 관리 ( 생성, 소멸, 연결 .. 2023. 4. 19.
[스프링의 정석] Spring DI 흉내내기 Spring DI 흉내내기 1. 변경에 유리한 코드(1) - 다형성, factory method SportCar car = new SportCar(); vvv Truck car = new Truck(); vvv vvv // 다형성을 이용 Car car = new SportCar(); Car car = new Truck(); 1. 변경에 유리한 코드(2) - Map과 외부파일 Car car = (Car) getObject("car"); Engine engine = (Engine) getObject("engine"); static Object getObject(String key) throws Exception { // config.txt를 읽어서 Properties에 저장 Properties p = new.. 2023. 4. 18.
[스프링의 정석] 예외 @ExcptionHandler 와 @ControllerAdvice @ExcptionHandler 예외 처리를 위한 메서드 작성 후 어노테이션을 해준다 package com.springmvcstudy.ch2; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class ExceptionController { @ExceptionHandler(Ex.. 2023. 4. 17.