스프링 IoC와 DI 소개 IOC의 종류 의존성 룩업 컴포넌트 스스로 의존성의 참조를 가져온다. 컨테이너에 의해 정의된 클래스와 인터페이스에 항상 의존한다. 의존성 주입 IoC 컨테이너가 컴포넌트에 의존성을 주입한다. 협력 객체를 의존 객체에게 제공
최근에 공부를 하면서 Bean과 static 클래스는 어떤 차이가 있을지 문듯 궁금해졌다.아니 정확히는 어떤 경우에 Bean으로 등록해야하고 어떤 경우에 static 클래스로 만들어도 될지 궁금했다.특히 @Componet 별다른 고민 없이 붙이고 있다는 생각 역시 들어
스프링 구성 상세 빈 사이클 관리 IoC 컨테이너가 제공하는 주요 기능 중 하나는 생성이나 소멸 같은 빈 라이프사이클의 특정 시점에 통지받을 수 있게 빈을 생성하는 기능이다. 초기화 이후 이벤트 빈에 모든 프로퍼티 값을 설정하고 의존성 점검을 마치자마자 발생한다. 소멸 이전 이벤트 스프링이 빈 인스턴스를 소멸시키기 바로 전에 발생한다. 하지만...
스프링 AOP AOP 개념 AOP를 잘 이해하려면 개념과 용어부터 잘 이해하는 것이 중요하다. 아래는 AOP를 이해하는데 필요한 개념과 용어를 간단히 정리한 것이다. 조인 포인트 애플리케이션 실행 과정 내에 있는 명확한 지점이다. AOP를 사용해 추가 로직을 삽입할 수 있는 애플리케이션의 특정 지점이다. 어드바이스 특정 조인포인트에서 실행되...
프록시... AOP를 위주로 AOP를 사용할 때 프록시를 활용하였는데 프록시는 무엇일까? 프록시의 핵심 목적은 메서드 호출을 인터셉트하고 필요한 경우 특정 메서드에 적용되는 어드바이스 체인을 실행하는 것이다. 어드바이스의 관리와 호출은 대부분 프록시와 독립적이며 스프링 AOP 프레임워크가 관리한다. 하지만 프록시는 모든 메서드를 호출하고 인터셉트...
스프링 JDBC JDBC 인프라스트럭처 JDBC는 자바 애플리케이션에서 데이터베이스에 있는 데이터에 액세스하는 표준 방법을 제공한다. JDBC 인프라스트럭처의 핵심은 각 데이터베이스용 드라이버로, JDBC 드라이버를 사용해 자바 코드가 데이터 베이스에 액세스 할 수 있다. 드라이버를 로딩하면 드라이버는 자신을 java.sql.DriverManage...
스프링에서 하이버네이트 사용하기 하이버네이트는 객체 관계 매핑 라이브러리(ORM)다. ORM 라이브러리의 주된 목적은 관계형 데이터베이스 관리 시스템의 관계형 데이터 구조와 자바의 객체지향 모델 사이의 차이를 줄여서 개발자가 객체 모델을 사용해 프로그래밍을 하는 것에 집중하게 하면서 데이터 저장 관련 작업을 쉽게 수행할 수 있게하는 것이다. 하이버네...
스프링에서 JPA2로 데이터 액세스하기 스프링 애플리케이션에 하이버네이트르 적용하는 또 다른 방법은 하이버네이트를 표준 자바 퍼시스턴스 API의 퍼시스턴스 제공자로 사용하는 것이다. JPA 2.1 소개 JPA 2.1 사양의 목적은 JSE와 JEE 환경에서 ORM 프로그래밍 모델을 표준화하는 것이다. JPA 2.1 사양은 JPA 퍼시스턴스 제공자가 ...
트랜잭션 관리 스프링 트랜잭션 추상화 레이어 알아보기 트랜잭션을 사용할 때는 먼저 글로벌 트랜잭션을 사용할지 로컬 트랜잭션을 사용할지 선택해야 한다. 로컬 트랜잭션은 단일 트랜잭션 자원에 한정되지만, 글로벌 트랜잭션은 컨테이너가 관리하며 여러 트랜잭션 자원에 걸쳐있을 수 있다. 트랜잭션 타입 로컬 트랜잭션은 관리하기 쉬우며 애플리케이션의 모든 처...
타입 변환과 포매팅을 사용해 유효성 검증하기 유효성 검증의 목적은 데이터 무결성을 확보해 애플리케이션 내 다른 레이어에서 사용 시 문제가 없도록 하는 것뿐만 아니라 사전 정의된 비즈니스 요구사항을 모두 충족하는지를 검증하는 데 있다. 애플리케이션 개발에서 데이터 유효성 검증은 늘 데이터 변환 및 포매팅과 함께 언급된다. 데이터 변환과 포메팅이 함께 ...
태스크 스케줄링 태스크 스케줄링은 크게 세 부분으로 구성된다. 첫 번째 구성 요소인 태스크는 특정 시간에 또는 정기적으로 실행해야 하는 비즈니스 로직 부분이다. 두 번째 구성 요소인 트리거는 태스크를 실행하는 조건을 지정하는 역할을 한다. 마지막으로 스케줄러는 트리거의 정보를 기반으로 태스크를 실행시킨다. 스프링의 태스크 스케줄링 태스크 스케줄...