상세 컨텐츠

본문 제목

스프링 빈(Spring Bean) 이란?

SPRING

by 박복만 2021. 11. 29. 16:03

본문

김영한 강사님의 스프링 핵심원리 강의를 듣고있는데 사실 스프링의 개념이 잘 잡혀있지 않은 상태이다. 그래서 약간 무작정 궁금한 모든 것을 자세히 찾아보고 넘어가는 식으로 정글버전으로 공부해보려고 한다. 먼저 코드를 보고 이게 뭐지 식으로 해볼것이다. 그 첫번째는 스프링 빈이다.

스프링 빈이란?

import org.springframework.stereotype.Repository;

@Repository
public class MemberRepository {

    @PersistenceContext
    private EntityManager em;

    public void save(Member member){
        em.persist(member);
    }

    public Member findOne(Long id){
        return em.find(Member.class, id);
    }

    public List<Member> findAll(){
        return em.createQuery("select m from Member m", Member.class)
                .getResultList();
    }

    public List<Member> findByName(String name){
        return em.createQuery("select m from Member m where m.name = :name", Member.class)
                .setParameter("name", name)
                .getResultList();
    }
}

강의중 @Repository 어노테이션을 사용하면 컴포넌트 스캔에 의해 자동으로 스프링 빈으로 등록이 된다는 설명이 나왔다. 이제 나의 궁금증은 여기서 생긴것이다. 정확히 스프링 빈이뭐지?

이것 저것 찾아보면서 내린 결론은 그냥 자바의 보통 객체가 스프링 컨테이너에 의해서 관리되면 그것은 스프링 빈이 되는 것이다.

우리는 IOC 패턴을 쉽게 사용하기 위해서 스프링 프레임워크의 IOC 컨테이너를 제공받아서 사용한다. 그러면 그때 IOC컨테이너에 등록되는 자바객체를 그냥 이제 스프링 빈 이라고 부르는, 즉 이름을 붙이는 것 뿐이다. 스프링 빈 자체가 뭐 대단한 그런 개념이 아닌 것이다.

스프링 공홈에서의 설명이다. 빨간줄들을 살펴보면 먼저 위에는 IOC와 DI를 거의 같은 것처럼 말하는 설명을 한줄 볼 수 있고, 그밑에 중요한 것이 설명이 되어있다. 스프링빈은 단순히 우리 어플리케이션의 여러 객체들을 말하는 것이다.

정리

우리 어플리케이션의 객체들이 설정정보와 함께 컨테이너에 등록되면 그것이 스프링 빈이라고 이름이 붙여지는 것 뿐!

다음시간엔

  • IOC개념에 대해서 제대로 알아보자. 왜 IOC컨테이너를 만들고 거기에 객체들을 등록해서 사용하는지 무슨 이점을 얻는 것인지

코드 및 자료 출처

'SPRING' 카테고리의 다른 글

자바(JAVA) - 스프링(Spring)이란?  (1) 2021.11.29

관련글 더보기

댓글 영역