만쥬의 개발일기

 

Java와 Spring으로 개발을 하다 보면 Bean이라는 개념이 자주 등장한다. 

자주 사용하는 용어이지만 제대로 정리하고 넘어간 적이 없는 것 같아서, 한번 깔끔하게 정리하고 넘어가야 할 것 같았다.

 

Java Bean

먼저 Java Bean에 대해 알아보자.

결론부터 말하자면 Java Bean은 특정 형태의 클래스를 가르키는 뜻으로 사용된다.

 

DTO 혹은 VO의 형태가 Java Bean이라고 생각하면 쉽다.

 

[백엔드 기술 면접 대비] - 1. DAO, DTO, VO란?

오늘은 데이터 컨트롤의 기초라고 볼 수있는, 데이터 객체들에 대해 한 번 짚고 넘어간다. DAO(Data Access Object)란? 말 그대로, 데이터베이스의 데이터에 접근하기 위한 객체이다. 비즈니스 로직에

kangmanjoo.tistory.com

 

필드는 private로 구성되어 getter와 setter를 통해서만 접근할 수 있고(DTO의 경우), 

전달 인자가 없는 생성자를 가지는 형태의 클래스이다.

  • getter / setter
  • public의 no-argument 생성자
  • 모든 필드는 private로 getter와 setter를 통해서만 접근 가능

getter와 setter, 생성자를 가지는 클래스를 가리키는 뜻으로 사용되는 만큼

POJO(Plain Old Java Object)와 거의 동일한 개념이라고 이해하면 될 것 같다.

 

아래 예시와 같은 형태의 클래스를 Java Bean이라 부른다.

public class AboutJavaBean {

	// 필드는 private로 선언
    private String bean;
    private int beanValue;

	// 전달 인자가 없는(no-argument) 생성자
    public AboutJavaBean() {
    
    }
		
	// getter
    public String getBean() {
        return beanName;
    }
    
	// setter
    public void setBean(String bean) {
        this.bean = bean;
    }

    public int getBeanValue() {
        return beanValue;
    }

    public void setBeanValue(int beanValue) {
        this.beanValue = beanValue;
    }
}

 


Spring Bean

Spring에서의 Bean은 스프링 IoC컨테이너가 관리하는 재사용 가능한 Java 객체를 뜻한다.

일반 Java 객체와 다른 점은 없다. 그냥 스프링 IoC컨테이너에서 관리되는 객체를 Bean이라고 부르는 것이다.

 

스프링 IoC가 관리하는 객체라함은 스프링에 의해 생성되고, 라이프 사이클을 수행하고, 의존성 주입이 일어나는 객체들을 말한다.

즉, 개발자가 관리하는 객체가 아닌 스프링에게 제어권을 넘긴 객체를 스프링에서 Bean이라고 부른다.

 

 


 

.

Bean을 등록하는 방법에는 다음 방법 들이 있다.

 

  • xml에 등록하는 방법
  • @Bean 어노테이션을 이용하는 방법
  • @Component 노테이션을 이용하는 방법

등 여러가지 방법이 존재하는데, @Bean과 @Component의 차이는 다음 포스팅에서 설명하겠다.

 

[Java 기술 면접 대비] - 4. @Bean VS @Component

Spring으로 개발을 하다보면 @Bean과 @Component를 언제 써야할지 헷갈릴때가 있다. 둘다 목적이 명확하지 않은 Bean을 생성할때 사용하는 어노테이션인데, 정확히 차이를 짚고 넘어가보자. @Bean VS @Compo

kangmanjoo.tistory.com

 

Reference

 

profile

만쥬의 개발일기

@KangManJoo

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!