반응형
  • 컬랙션 객체임을 JPA 에 알려주는 Annotation.
    @Entity 
    public class Person { 
    	@Id 
        private Long id; 
        private String email; 
        
        @ElementCollection 
        @CollectionTable( name = "address", joinColumns = @JoinColumn(name = "person_id") ) 
        List<AddressInfo> addressInfoList = new ArrayList<>(); 
    }
  • Entity 와 라이프 싸이클을 같이 하며 독립적으로 사용 불가능 하다.
  • 부모 Entity가 삭제될 경우 같이 삭제된다. (실제 클래스에 cascade 를 설정하는 옵션이 없다.)
  • ElementCollection의 Fetch 전략은 기본이 Lazy 이다.
  • 실제 테이블은 FK 를 이용해서 생성된다.
    Hibernate: create table address (person_id bigint not null, address1 varchar(255), address2 varchar(255), zip_code varchar(255))
    Hibernate: create table person (id bigint not null, email varchar(255), primary key (id))
    Hibernate: alter table address add constraint FK81ihijcn1kdfwffke0c0sjqeb foreign key (person_id) references person
  • CollectionTable Annocation 을 사용하지 않을 경우에는 다음과 같이 테이블이 생성된다.
    Hibernate: create table person_address_info_list (person_id bigint not null, address1 varchar(255), address2 varchar(255), zip_code varchar(255))
728x90
반응형
반응형

Label, Annotation

Label(레이블)

  • 키-값 쌍으로 구성
  • 파드 관리할때 구분하는 역할을 한다.
  • 규칙
    • 63글자 넘으면 안됨
    • 시작과 끝문자는 알파벳 대소문자 및 숫자
    • 중간에는 대시(-), 밑줄(_), 점(.), 숫자등이 올수 있음
  • 레이블 셀렉터
    • 등호기반(=, ==)
    • 집합기반(in, notin..)
    • 레이블을 모두 만족시켜야 하는경우 (And) 는 쉼표로 연결
    • 실제 서비스에서 정상적으로 셀렉트를 했는지 보려면 서비스의 endpoint를 확인해보면 된다.
  • pod 선택시 -l 옵션 사용
    • kubectl get pod -l 레이블~

Annotation

  • 쿠버네티스 시스템이 필요한 정보를 담는다.
  • 키는 쿠버네티스 시스템이 인식할 수 있는 값을 사용한다.

출처 : 쿠버네티스 입문 - 90가지 예제로 배우는 컨테이너 관리자 자동화 표준 (동양북스)

728x90
반응형
반응형

Retention Annotation은 meta Annotation이 얼마동안 유지되는지를 정한다.

사용법은 아래와 같다

Retantion(RetentionPolicy.SOURCE) : Annotation이 소스 코드에만 존재하고 class 파일이나 runtime 시에 나타나지 않는다.

Retantion(RetentionPolicy.CLASS) : compiler가 class파일에 기록은 하지만 runtime시에 나타나지 않는다. Retantion을 명시하지 않으면 default가 CLASS이다.

Retantion(RetentionPolicy.RUNTIME)compiler가 class파일에 기록을 하고 runtime시에 영향을 준다.

728x90
반응형

'Development > Java' 카테고리의 다른 글

Singleton Pattern  (0) 2013.07.03
List 를 Array로 바꾸는 함수.  (0) 2013.07.02
Meta Annotaion  (0) 2013.07.01
Type-Safe Code란?  (0) 2013.06.25
Fileld명을 테이블 컬럼명으로 바꾸자  (0) 2013.04.06
반응형

Annotation을 지정할 때에 특정 field나 method에 한정해서 지정해 줄 수 있다.


@Target(ElementType.FIELD)

위와 같이 사용하게 되면 해당 Annotation은 Field에만 사용할 수 있게된다.

FIELD 이외에도 다른 타입들이 존재한다.

TYPE(Class, interface..)
METHOD
PARAMETER
CONSTRUCTOR
LOCAL_VARIABLE
ANNOTATION_TYPE
PACKAGE

여러개를 사용하고 싶을 때에는 다음과 같이 Array형태로 지정한다.

@Target({ElementType.FIELD,ElementType.METHOD })


728x90
반응형

'Development > Java' 카테고리의 다른 글

List 를 Array로 바꾸는 함수.  (0) 2013.07.02
Annotation : Retention  (0) 2013.07.01
Type-Safe Code란?  (0) 2013.06.25
Fileld명을 테이블 컬럼명으로 바꾸자  (0) 2013.04.06
Tomcat 구동시 라이브러리를 못찾을 경우..  (0) 2013.03.29
반응형

1. 속성 정의 XML 파일에 추가되어야 하는 정의 

 xmlns:context="http://www.springframework.org/schema/context“
                                  http://www.springframework.org/schema/context
                                  http://www.springframework.org/schema/context/spring-context-3.0.xsd">  
                <context:annotation-config/>       
Spring Container가 Annotation을 인식하기 위해서는 Spring Container에 BeanPostProcessor들이 등록되어있어야한다. <context:annotation-config/>을 추가하면 내부적으로 자동 등록된다.

2. Stereotype
- @Service : Business Layer를 구성하는 서비스 클래스 대상
- @Repository : Data Access Layer를 구성하는 클래스 대상
- @Controller : 프레젠테이션 Layer를 구성하는 클래스 대상, Spring MVC 기반의 경우에 한하여 사용

3. Dependencies
- @Inject, @Autowired, @Resource : 특정 Bean의 비지니스 기능 수행을 위해 다른 Bean을 참조할경우 사용
- @Inject (javax.inject-xxx.jar)
  멤버변수, setter 메소드, 생성자, 일반 메소드에 정의
- @Autowired : Framework에 종속적
- @Resource (jsr250-api.jar)
  멤버변수와 setter 메솓에 정의할수 있음

@Inject 

 @Autowired

@Resource 

type-driven injection 방식  type-driven injection 방식  

name-matching injection 방식  

JSR-330표준, Framework에 종속되지 않음 

 Spring Framework에 종속적   JSR-2500표준, Framework에 종속되지 않음
 @Named 이용하여 특정 빈 지정

@Qualifier를 이용하여 특정 빈 지정 

 Annotation 내에 name 속성을 통해 특정 빈 지정

 멤버변수, setter메소드, 생성자, 일반메소드

   멤버변수, setter메소드, 생성자, 일반메소드    멤버변수, setter메소드

 @Inject 사용을 권장


4. Auto-Detection
- <context:component-scan> 정의 필요
- 클래스패스 상에 존재하는 클래스들을 스캔하여 Stereotype Annotation이 정의된 클래스들과 필터와 비교하여 매칭되는 클래스들을 Bean으로 인식하여 자동으로 등록

 <context:component-scan base-package="패키지명" />

5. TestCase
- @RunWith : SpringFramework에서 Junit4.5+와의 연계를 위해 제공하는 SpringJUnit4ClassRunner클래스로 정의
- @ContextConfiguration : ApplicationContext 생성시 필요한 속성정의 파일 위치 명시


728x90
반응형

'Development > Java' 카테고리의 다른 글

객체에는 메서드가 포함되지 않는다?  (0) 2013.02.12
파일 입출력.  (0) 2013.01.29
[Spring]SpEL(Spring Expression Language)  (0) 2012.07.31
[Spring]Autowiring  (0) 2012.05.03
[Spring]AOP 주요 구성요소  (0) 2012.04.13

+ Recent posts