Core(IoC, DI)

jaegeunsong97·2023년 1월 16일
0

TIL

목록 보기
28/156
post-thumbnail

2023_1_16_TIL

Core(IoC, DI)

  • Core (DI, Ioc)
    • IoC(Inversion of Control), DI(Dependency Injection)
      • IoC와 DI는 레고 같은 것
      • 스프링이 바닥판, 그 위에 나의 Application을 만들면 됨

    Bean이란?

  • 의존성 주입을 하고 싶으면 의존성 주입을 해야함
  • javaBean
    • 데이터를 저장하기 위한 구조체(Bean 규약을 지킴),
    • private property와 getter/setter로만 데이터를 접근
private String id;
private Integer count;

public String getId() {return id;}
public void setId(String id) {this.id = id;}
public Integer getCoun() {return count;}
public void setCount(Integer count) {this.count = count;}
  • springBean
    • 스프링 IoC container에 의해 생성되고 관리되는 객체
    • 자바처럼 new Objcet()로 생성X
    • 각각의 Bean들 끼리 서로 편리하게 DI 가능

스프링 컨테이너 개요

  • ApplicationContext인터페이스를 통해 제공되는 스프링 컨테이너는 Bean객체의 생성 및 Bean들의 조립(상호 의존성 관리)을 담당
  • Bean등록
    • 과거(xml로 설정을 따로 관리 후 등록),
    • 현재(annotation기반 Bean등록)
      • @Bean @Controller @Service
    • Bean등록 시 정보
      • Class 경로
      • Bean의 이름
        • 클래스 이름에서 첫 문자만 소문자(기본) -> accountService, userDao
        • 원하는 경우 변경 가능
      • Scope -> Bean생성규칙
        • singleton -> 컨테이너에 단일로 생성
        • prototype -> 작업할때 마다 Bean을 새로 생성하고 싶을 때
        • request -> http요청마다 새롭게 Bean 새로 생성하고 싶을 때
    • Bean LifeCycle callBack
      • callback -> 어떤 이벤트가 발생하는 경우 호출되는 메소드
        • @PostConstruct -> 빈 생성 시점에 필요한 작업을 수행
        • @PreDestroy -> Bean 파괴(Application 종료) 시점에 필요한 작업을 수행
      • lifecycle callback -> Bean을 생성하고 초기화하고 파괴하는 등 '특정'시점에 호출되도록 하는 메소드
profile
블로그 이전 : https://medium.com/@jaegeunsong97

0개의 댓글