DB를 사용해 데이터를 조회하거나 조작하는 기능을 전하도록 만든 오브젝트이다.다음 두 가지 관례를 따라 만들어진 오브젝트를 가리킨다디폴트 생성자프로퍼티sql 구문을 실행하는 객체statement를 상속받는 인터페이스로 SQL구문을 실행시키는 기능을 갖는 객체statem
1.6 싱글톤 레지스트리와 오브젝트 스코프 오브젝트의 동일성과 동등성 동일성 두 개의 오브젝트가 완전히 같은 오브젝트라는 것을 의미한다. 두 개의 오브젝트가 동일하다면 사실은 하나의 오브젝트만이 존재하는 것으로 두 개의 오브젝트 레퍼런스가 존재하는 것이다. 연산자를
3.1 다시 보는 초난감 DAO 예외 처리 try/catch/finally try: 예외가 발생할 수 있는 코드 catch: 예외가 발생했을 때 부가적인 작업을 하기 위한 코드 finally: 예외 발생과는 별개로 반드시 실행되는 코드 3.2 변하는 것과 변하지 않는
사라진 SQL Exception 초난감 예외처리 모든 예외는 적절하게 복구되거나 작업을 중단시켜 개발자에게 통보되어야한다. 예외처리 코드에서 아무것도 안하고 넘어가거나 로그를 출력하는 방식은 예외상황이 개발자에게 알려지지 않을 가능성이 높다. 예외를 잡아서 조치를 취할
5.1 사용자 레벨 관리 기능 추가 기존 UserDao는 CRUD 기능만을 포함하였다. 이 UserDao에 간단한 비즈니스 로직을 추가한다. BASIC, SILVER, GOLD 세 가지의 사용자 레벨이 존재하고, 활동에 따라 사용자 레벨이 변경된다. 필드 추가 사용자
6.1 트랜잭션 코드의 분리 메소드 분리 UserService 클래스 내부에는 비즈니스 로직 뿐만 아니라 트랜잭션 경계 설정 코드가 포함되어 있다. 목적이 다른 두 기능이 한 클래스에 공존하지 않도록 두 기능을 독립시킨다. 비즈니스 로직과 관련된 부분을 upgradeL
타깃 오브젝트로의 위임 코드와 부가기능을 제공하기 위한 코드가 프록시가 구현해야 하는 모든 인터페이스 메소드마다 반복적으로 필요했다. 이 문제를 해결하기 위해 다이내믹 프록시를 사용하였다. 타깃의로의 위임과 부가기능 적용 여부 판단은 다이내믹 프록시가 담당하고, DI를
7.1 SQL과 DAO의 분리 UserDao는 충분히 개선되었지만 SQL을 분리하지 않았다는 문제가 있다. SQL을 변경하는 작업은 빈번히 일어나고 실수가 자주 일어날 수 있는 작업이기 때문에 SQL을 분리하여 다른 파일에 두어 관리하면 좋을 것이다. XML 설정을 이
1.3 프로토타입과 스코프 애플리케이션 컨텍스트마다 빈의 오브젝트는 한 개만 만들어진다. 사용자의 요청 마다 매번 애플리케이션의 로직을 담당하는 오브젝트를 생성하는 것은 낭비이다. 하지만 때로는 빈 오브젝트를 싱글톤이 아닌 다른 스코프로 관리해야 하는 경우가 있다. 싱
1.4 기타 빈 설정 메타정보 1.4.1 빈 이름 지금까지 빈 아이디와 빈 이름을 통해 특정 빈을 구분하여 사용하였고 이는 빈 식별자(identifer) 라고 한다. XML의 경우 태그의 id와 name 두 가지 attribute를 이용해 식별자를 정의한다. id
스프링 3.1에 새로 도입된 IoC/DI 기술은 다음 두 가지이다.강화된 자바 코드 빈 설정런타임 환경 추상화스프링 3.1의 가장 큰 특징은 자바 코드를 이용한 설정 메타정보 작성이 쉽다는 점이다. 따라서 XML을 최소화하여 개발이 가능하다.빈이란 IoC/DI 컨테이너