프로그래밍공부
Spring Bean의 개념과 생성원리 및 과정
1. Spring Bean이란 ? Spring Bean은 Spring IoC 컨테이너가 관리하는 자바 객체로서 컨테이너에 의해 생명주기가 관리되는 객체를 의미한다. IoC 컨테이너 안에 들어있는 객체로 필요할 때마다 IoC 컨테이너에서 가져와서 사용한다. 어노테이션인 @Bean을 사용하거나 xml 설정을 통해 일반 객체를 Bean으로 등록이 가능하다. 즉, Spring 에서는 Bean은 ApplicationContext가 알고 있는 객체이며 ApplicationContext가 생성하고 직접 관리해주는 객체를 의미한다. XML 기반의 Bean 정의 방법들 2. Spring Bean의 생명 주기 객체 생성 -> 의존 설정 -> 초기화 -> 사용 -> 소멸 과정의 생명 주기를 가지고 있다. Bean은 스프링 ..
JPA의 엔티티 매핑
1. 엔티티 매핑 JPA에서는 엔티티와 테이블을 매핑해서 사용하며, 이러한 매핑을 어노테이션을 통해 쉽게 처리 가능하다. 객체와 테이블의 매핑 : @Entity, @Table 필드와 컬럼 매핑 : @Column 기본 키 매핑 : @Id 연관관계 매핑 : @ManyToOne, @JoinColumn 1) @Entity @Entity가 붙은 클래스는 JPA가 관리하며 엔티티라고 부른다. JPA를 사용해서 테이블과 매핑할 때 클래스는 @Entity 어노테이션이 필수이다. 주의사항 기본 생성자를 필수로 만들어야 한다. (파라미터가 없는 public 또는 protected 생성자) final 클래스, enum, interface, inner 클래스를 사용하면 안된다. 저장할 필드에 final를 사용해서는 안된다. ..
JPA의 영속성 관리
JPA에서 가장 중요한 2가지 객체와 관계형 데이터베이스의 매핑 (Object Relational Mapping) 설계와 관련된 부분 정적인 내용 영속성 컨텍스트 실제 JPA가 내부적으로 어떻게 동작하는가에 관련된 부분 1. 영속성 컨텍스트 1) 엔티티 매니저 팩토리와 엔티티 매니저 엔티티 매너지를 통해 영속성 컨텍스트에 접근한다. 영속성 컨텍스트는 논리적인 개념이다. J2SE 환경 : EntityManager와 PersistenceContext가 1:1로 관리된다. J2EE : 스프링과 같은 컨테이너 환경에서 EntityManager(N) : PersistenceContext(1)로 관리된다. 2) 영속성 컨텍스트 JPA를 이해하는데 가장 중요한 용어이다. "엔티티를 영구 저장하는 환경"이라는 뜻이다...
JPA 시작
1. JPA 설정하기 - persistence.xml /META-INF/persistence.xml에 위치한다. persistence-unit name으로 이름을 지정한다. javax.persistence로 시작하여 JPA 표준 속성을 지정한다. hibernate로 시작하여 하이버네이트 전용 속성을 지정한다. hibernate.dialect의 value 값에는 사용하려는 DB에 맞춰서 작성한다. 2. JPA 의 여러 DB 사용 JPA는 특정 데이터베이스에 종속하지 않다. 각각의 데이터베이스가 제공하는 SQL 문법과 함수가 조금씩 다르지만 SQL 표준을 지키지 않아도 특정 데이터베이스만의 고유한 기능을 사용할 수 있다. 가변 문자 : MySQL은 VARCHAR, Oracle은 VARCHAR2 문자열을 자르..