메모장

Annotation ( @, 어노테이션 ) 본문

Spring/개념정리

Annotation ( @, 어노테이션 )

Itchild 2024. 5. 30. 23:02
728x90
반응형

 

new (= 객체화)를 스프링 컨테이너에게 객체 생성 및 관리하도록 부탁한다.

방법 1) .xml <bean> (지금까지 배운 내용)

설정이 과다해짐

가독성 떨어짐

구조파악(JAVA)이 어려움

 

방법 2) @ (어노 테이션)

설정을 .java에 할수는없을까?

JAVA의 구조파악에 도움을 줌

.xml이 줄어듦 -> 가독성 좋아짐

context 네임스페이스를 추가해야 @을 사용할수있다.


✔️ @ (어노테이션)

 

@ (어노테이션)을 사용하기 위해서는 먼저 context 라는 Namespaces 로 들어가서 체크 해줘야 한다.

 

                                                                                              ↓ ↓ ↓

 

context라는 네임스페이스에서 component-scan 이라는 기능의 엘리먼트(태그)를 사용한다.

component == Bean == 모듈 == 위젯

<context:component-scan base-package="test" />

"test"라는 이름의 패키지를 스캔해줘~!

 

 

( =객체화 GalaxyPhone gp=new GalaxyPhone(); )

== @Component("gp") 컴포넌트 자체로 객체화가 된 것

 

1) @Component

개발자가 직접 작성한 Class를 Bean으로 등록하기 위한 Annotation 이다.

 

2) @Autowired

의존관계 주입(DI)을 할 때 사용하는 어노테이션(Annotation)이며,

의존 객체의 타입에 해당하는 빈(Bean)을 찾아 주입하는 역할을 한다.


 

 

 

★ 메모리에 watch와 같은 자료형을 가진 객체가 2개이상이라면?

스프링 컨테이너가 "자료형" 을 보고 작업처리를 하기때문에 에러발생 !

@Qualifer : 객체가 여러개일때 식별이 모호할경우 명시해주기 위해 사용한다.

 

그런데 잠깐 !

스프링 컨테이너가 "자료형" 을 보고 작업처리를 하지만 모호한 경우 ..! 만약의 확률로 remote라는 변수명 이름을 찾아줄 수도 있어서 " 에러가 안 뜰수도 " 있다.

 

728x90
반응형