본문 바로가기

IT/Spring

Spring 기본개념

반응형

스프링 기본 개념
 - 스프링의 탄생 배경 : 기존의 EJB의 사용이 무겁고, 활용성이 떨어지는 이슈로 인해 POJO인 자바기반 스프링 프레임워크가 탄생하게 되었음
 

스프링은 인터페이스화된 부품들을 컨테이너(IOC)에서 생성 및 조립(DI)하는 것 의미함
   
 - 특징 : 스프링 = DI(의존성 주입) + IOC(제어의 역전) + AOP(관점지향프로그램)
 
1) DI = 한 클래스에서 다른 클래스를 호출하는 식으로 서로 의존성을 맺는걸 의미한다.
    1.직접 생성 (Java) - autowired, inject
    2. Setter를 이용한 생성 
    3. Contructor를 이용한 생성
    > 2, 3번처럼 IOC 컨테이너에 등록된 Bean 객체를 호출하여 주입할 수 있음 (= 외부에서 의존성 주입 가능)


 2) IOC = 메소드나 객체의 호출 작업을 개발자가 아닌 외부에서 결정하는 것을 의미함
        -> 의존성을 외부에 둠으로써 결합도를 낮추고 유연성, 가독성, 코드 중복등 유지보수가 편해짐 (스프링은 모든 의존성 객체를 싱글톤 패턴으로 생성함)
 3) AOP = 개발시 사용되는 로깅 또는 세션같이 구현하고자 하는 기능과는 별개로 운영할 수 있는 부분을 모듈화하는걸 의미한다. 
          (중심에서 벗어나 새로운 관점으로 바라보는걸 관점지향프로그램 AOP라고 함)
  
  1. Target - 모듈이 적용될 대상
  2. Advice - 모듈이 구현된 구현체 (Aspect가 언제, 무엇을 할지는 정의)
  3. JoinPoint - Advice가 적용될 위치 
  4. PointCut - JoinPoint가 적용될 메소드 중 부가 기능을 추가로 적용될 위치
  5. Proxy - 타겟 대신에 클라이언트 요청을 받아오는 객체
  6. Advisor - PointCut과 Advice를 하나씩 갖고 있는 객체 (AOP 기본)
  7. Aspect - 부가기능이 정의된 Advice와 Advice가 적용될 PointCut의 조합

 

[샘플 코드]

atoz-develop.tistory.com/entry/Spring-%EC%8A%A4%ED%94%84%EB%A7%81-AOP-%EA%B0%9C%EB%85%90-%EC%9D%B4%ED%95%B4-%EB%B0%8F-%EC%A0%81%EC%9A%A9-%EB%B0%A9%EB%B2%95


     


 - 빈 (Bean)
 : 스프링 IOC 컨테이너가 관리하는 자바 객체를 의미함 

   (new 연산자로 생성하는 객체 X, ApplicationContext.getBean()으로 호출하는 객체 O)
 
 1) Spring IOC 컨테이너에 빈을 등록하는 방법
   1. Component Scanning
     - @ComponentScan(해당 시점부터 Bean 스캔) 또는 @Component(해당 클래스 Bean 등록) 어노테이션으로 빈을           등록하는 방법
   2. Bean 설정파일에 직접 Bean을 등록

반응형

'IT > Spring' 카테고리의 다른 글

스프링 부트 배치_springBoot batch  (0) 2020.08.10