스프링 빈과 의존관계 설정

Youmi Choi (Blake)·2021년 6월 10일
0

PAST

목록 보기
15/21

출처 : 김영한 팀장님의 인프런 강의

빈 등록 방법 1

컴포넌트 스캔방식 (어노테이션들 안에 @Component 가 포함되어있음)

@Spring boot application 패키지 하위에 위치 되어야하고
어노테이션을 달면 스프링 컨테이너에서 스프링 빈이 관리됨.
@Controller 어노테이션을 통하여 해당 컨트롤러의 객체를 들고 있게 됨.

다른 곳에서 사용시 새로운 객체 생성을 하지 않고, 컨테이너에 저장된 객체들을 꺼내다 씀.(싱글톤) 따라서 메모리사용이 적음.

빈 등록 방법 2

자바코드에서 직접 스프링 빈들 등록 하는 방식

@Configuration
@Bean
사용

@Component : 스프링의 BeanFactory라는 팩토리 패턴의 구현체에서 bean이라는 스프링프레임워크가 관리하는 객체가 있는데
해당 클래스를 그러한 bean 객체로 두어
스프링 관리하에 두겠다는 어노테이션.

@Controller과 같은 어노테이션들에 @Component포함 되어있음.


@Autowired : 생성자 주입. 알아서 필요한 객체들을 컨테이너에서 찾아 열결해줌.

용어

생성자란?

객체 초기화 함수, 생성시 첫번째로 호출 , 객체 데이터 초기화

jpa란?

인터페이스로서 주로 하이버네이트 구현체를 사용하여 자동으로 sql를 생성, 데이터 관리를 더 편하게 해주는 기술

엔터티(Entity)란?

엔터티는 쉽게 말해 실체, 객체라고 생각할 수 있다.

  • 엔터티는 사람, 장소, 물건, 사건, 개념 등과 같은 명사에 해당된다.
  • 엔터티는 업무상 관리가 필요한 것에 해당된다.
  • 엔터티는 저장 되기 위한 어떤 것(Thing)에 해당된다.

예를 들어 학교라는 곳에선 과목이라는 엔터티가 존재할 수 있다.

즉 과목이라는 엔터티가 있다면, 수학, 영어, 국어와 같은 인스턴스가 과목이라는 엔터티에 포함되는 것이다.

이때 엔터티는 자신이 가지고 있는 인스턴스를 설명할 수 있는, 나타낼 수 있는 속성(Attribute)를 가지게 된다. 앞에서 이야기한 수학, 영어, 국어와 같은 인스턴스가 존재한다면 이들은 과목이라는 엔터티에서 이름이라는 속성을 가지고 있는 것이죠. 속성에 대해서는 엔터티를 알아본 후에 보다 자세히 알아보자.

엔터티의 특징?

엔터티는 일반적으로 다음과 같은 특징을 가지고 있다. 물론 아래와 같은 특징을 지니지 않은 경우도 있을 수 있지만 일반적으로 아래의 특징을 지니지 않으면 적절하지 않은 엔터티일 확률이 높다.

  • 반드시 엔터티가 사용되는 곳의 업무에서 필요하며 관리하고자 하는 정보

  • 엔터티가 포함하는 인스턴스에 대해 유일한 식별자로 식별이 가능해야 함

  • 엔터티는 지속적으로 존재하는 두개 이상의 인스턴스들의 조합이어야 함

  • 엔터티는 반드시 속성을 지녀야 함

  • 엔터티는 업무 프로세스에 의해서 이용되어야 함

  • 엔터티는 다른 엔터티와 최소 한 개 이상의 관계가 있어야 함

엔터티 출처

profile
꾸준함을 통해 완벽을 추구합니다.

0개의 댓글