일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- @configuration
- 인터페이스
- java
- DI
- 코드트리
- 스프링
- 김영한
- fielderror
- http 메시지 컨버터
- 서블릿
- 티스토리챌린지
- 추상클래스
- ocp
- 오버라이딩
- 테스트코드
- 참조변수
- JSON
- objecterror
- 코드트리조별과제
- html form
- 다형성
- 스프링컨테이너
- equals()
- 싱글톤
- 코딩테스트
- HttpServletResponse
- 백준
- 오블완
- 프록시
- 의존관계
- Today
- Total
목록DI (2)
minOS
현재 서비스 계층은 트랜잭션을 사용하기 위해서 JDBC 기술에 의존하고 있다. 향후 JDBC에서 JPA 같은 다른 데이터접근 기술로 변경하면, 서비스 계층의 트랜잭션 관련 코드도 모두 함께 수정해야 한다.구현 기술에 따른 트랜잭션 사용법- 트랜잭션은 원자적 단위의 비즈니스 로직을 처리하기 위해 사용한다.- 구현 기술마다 트랜잭션을 사용하는 방법이 다르다. JDBC : `con.setAutoCommit(false)` JPA : `transaction.begin()`JDBC 트랜잭션 코드 예시public void accountTransfer(String fromId, String toId, int money) throws SQLException { Connection con = data..
IoC, DI 그리고 컨테이너 제어의 역전 IoC(Inversion of Control) AppConfig 설계 이후 , 구현 객체는 자신의 로직을 실행하는 역할만 담당한다. 프로그램의 제어 흐름은 이제 AppConfig가 가져간다. - 구현체(OrderServiceImpl)은 필요한 인터페이스들을 호출하지만 어떤 구현 객체들이 실행될지 모른다. 프로그램의 제어의 흐름에 대한 권한은 모두 AppConfig가 가지고 있다. 심지어 구현체(OrderServiceImpl)도 AppConfig가 생성한다. 이렇듯, 프로그램의 제어 흐름을 직접 제어하는 것이 아니라 외부에서 관리하는 것을 제어의 역전(IoC)이라 한다. 프레임워크 vs 라이브러리 프리엠워크 : 내가 작성한 코드를 제어하고, 대신 실행하는 것 ex..