본문 바로가기

Java, Spring/Spring5 기초 정리

2-11강 Spring IoC 이해하기 (매우중요)

 

지금 까지는 new ClubMapStore() 처럼 직접 객체를 생성하여 clubStore.create(club) 처럼 써왔음

 

 

 

 

 

# 지금까지의 방식

A 라는 클래스에서 B라는 클래스의 인스턴스를 사용하고 싶을 때

1. 생성

2. 참조정보를 가지고 B 클래스에 접근

 

 

# IOC 방식

A 라는 클래스는 B 라는 클래스의 존재도 모름. 다만 A 클래스는 B클래스가 구현하고 있는 인터페이스에 대한 참조만 가지고 있다.

IOC 컨테이너가 B 라는 클래스의 객체의 생성부터 생성한 B 객체의 인스턴스정보를 A라는 클래스에 전해줌.

( 이 때 우리가 해야할 일은 IOC컨테이너가 B클래스의 객체를 생성하고 의존관계를 주입할 수 있도록 설정정보들을 기록해 주는 것.-> .xml 파일로 설정해주는 것(빈등록절차) ) Dependancy Injection

 

 

DL은 지금 안씀, DI 중 Constructor Injection을 가장 많이 씀

 

 

 

 

옛날 방식의 bean 등록. property 는 setter 주입 쓴다는 뜻. 우리가 아까 쓸 때는 constructor-arg -> 생성자 주입함

 

 

 

 

 

- 객체 생성에 대한 주도권을 객체를 필요로 하는 곳으로 넘겨주어 필요할 때 필요한 곳에서 객체를 생성하는 방법.

- ClubServiceLogic 에서는 ClubMapStore의 존재를 모르는 상태에서 ClubMapStore의 메서드를 ClubStore 인터페이스의메서드를 호출 함으로써 사용할 수 있게됨.

 

 

 

# 용어

ApplicationContext 는 BeanFactory 를 확장한 개념 ( 싱글톤으로 관리 등등.. 여러 기능 추가 )

WebApplicationContext는 Web환경에 필요한 기능 추가된 ApplicationContext

 

 

 

 

# 메타정보 설정 3가지 방법

1. XML 문서 ( 수동 ) 

   우리가 작성 했던 ApplicationContext.xml 처럼 작성 ( 예전 방식 )

2. Annotations ( 자동 )

   @Component 를 포함한 어노테이션 등을 붙이는 방법 ( ex. @Service, @Controller, @Repository )

3. 자바 코드 ( 수동 )

   @Configuration 달고 각 메서드에 @Bean 붙이는 방법

 

 

 

 

 

2. Annotations ( 가장 많이 사용 )

- base-package를 설정 후 그 패키지부터 컴포넌트 스캔

- 그 후 빈 등록 원하는 클래스 위에 어노테이션

 

 

 

 

 

 

# Bean의 scope 관리

 

보통 싱글톤으로 쓴다. ( 디폴트 값이기도 함 ) - 싱글톤 패턴이 아니라 싱글톤 레지스트리 기법을 이용하여 단일객체를 보장해줌 (어려운 말 그냥 적어둠)

 

 

 

 

스프링 IOC 컨테이너에 의해서 bean이 생성될 때 처음에 생성되고, 의존성이 주입되고 전후로 초기메서드, 소멸메서드 사용할 수 있다. -> 이 정도만 알아두기 ( 잘 안 씀 )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 자료를 참고하였습니다.

 

 

꾸준히 다시보자.

 

1. 220730

2. 220812

3. 220915

'Java, Spring > Spring5 기초 정리' 카테고리의 다른 글

3-3강 REST API의 이해  (0) 2022.07.26
3-1강 Spring Boot의 이해  (0) 2022.07.26
2-9강 MemberServiceLogic 구현  (0) 2022.07.25
2-8강 구현- MemberMapStore 구현  (0) 2022.07.25
2-7강 ClubSerivceLogic 구현  (0) 2022.07.25
Recent Posts
Popular Posts
Recent Comments