[Spring] 0713정리

charco·2021년 7월 13일
0

토비스프링

목록 보기
2/11
post-thumbnail

ApplicationContext

BeanFactory를 상속받는다.
별도의 설정 정보를 이용해 빈의 생성, 관계 설정 등의 제어 작업을 총괄

Deployment Assembly

각 프로젝트 폴더를 조립 (가상 배포 공간에 배포)

@Bean

오브젝트 생성을 위한 IoC용 메서드라는 것을 명시
ApplicationContext의 getBean("메서드 이름")을 통해
오브젝트를 불러올 수 잇음

스프링 IoC 용어

1.bean -> 스프링이 IoC방식으로 관리하는 오브젝트
2.BeanFactory -> 스프링의 IoC를 담당하는 핵심 컨테이너
3.ApplicationContext -> BeanFactroy를 확장한 IoC컨테이너
4.설정정보/메타정보 -> ApplicationContext가 IoC를 적용하기 위해
사용하는 메타정보

동일성과 동등성

동일성 (==)
참조값을 비교(두개의 다른 참조값이 하나의 오브젝트를 가리킬 수 잇음).
동등성 (.equals())
오브젝트의 내용을 비교
동일하다면 동등하지만
동등하다고 무조건 동일하지 않음

싱글톤 레지스트리

ApplicationContext는 기본적으로 오브젝트를 Singletone으로 만든다.

싱글톤 패턴

한 클래스를 하나의 인스턴스만 존재하도록 강제하는 디자인 방식
싱글톤의 한계
1. private 생성자 -> 상속 못함
2. 테스트가 힘듦
3. 서버환경에서 싱글톤을 보장 못함.
4. static method -> 전역적으로 접근해 수정, 공유 가능

--> 스프링은 평범한 Class를 싱글톤으로 만들어줌 (싱글톤으로 디자인된 클래스가 아닌 평범한 클래스)

싱글톤 오브젝트의 주의점

stateless 해야함
수정 가능한 변수는 로컬 변수로 지정해
각각 별도의 메모리를 쓰도록 해야함.

스프링 빈의 스코프

싱글톤 -> 컨테이너가 존재하는 동안 유지됨

의존 관계

A ---- > B A가 B에 의존함 B의 기능의 변경이 A의 기능에 영향을 준다는 말
모델링 시점 -> 인터페이스만 의존함

런타임 시점 -> 인터페이스의 구현체와 의존관계가 형성됨

의존 관계 주입

  1. 인터페이스에만 의존 -> 코드에 의존관계가 나타나면 안됨
  2. 제 3의 존재(컨테이너, 팩토리) 가 의존 관계를 결정해야 함
  3. 사용할 오브젝트의 레퍼런스를 외부에서 제공함

의존 관계 검색

getBean("메서드 이름") -> 오브젝트 검색 -> 주입

DTD & Schema

XML 문서의 구조 정의
태그들은 schema 에 정의돼잇음.
beans 태그를 쓰려면 해당 스키마를 선언해야함

profile
아직 배우는 중입니다

0개의 댓글