웹/Spring

Container와 Bean

Themion 2022. 3. 15. 15:49

Spring은 Java 프레임워크이고, Java는 객체 지향 프로그래밍 언어이다. 즉 Spring에서 구현되는 모든 기능은 어떠한 객체의 메소드로 구현되므로, Spring에선 이러한 기능을 가진 객체를 Singleton 방식, 즉 해당 객체를 단 하나만 생성해 사용하는 방식으로 관리한다. 이 때 Spring에서 관리되는 객체를 Container, Container를 만드는 함수 Bean이라고 부른다.

Spring에서 어떠한 클래스를 Container로 만드는 방법은 두 가지가 있는데, 하나는 클래스에 Annotation을 붙여 Container로 만드는 것이고, 또 하나는 설정 클래스에서 객체를 반환하는 함수를 만들고 그 함수에 Annotation을 붙여 Bean으로 만드는 것이다.

  • Bean을 관리할 설정 클래스를 만드는 방법
// src/main/java/{package}/SpringConfig.js

package com.example.demo;

import com.example.demo.domain.Person;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class SpringConfig {
    @Bean
    public Person person() {
        return new Person();
    }
}
  • 클래스에 Annotation을 붙여 관리하는 방법
// src/main/java/{package}/domain/Person.js

package com.example.demo.domain;

@Container
public class Person {
    private String first, last;

    public Person() {}
    public Person(String first_, String last_) {
        first = first_;
        last = last_;
    }

    public String getFirst() { return first; }
    public String getLast() { return last; }
    public void setFirst(String first) { this.first = first; }
    public void setLast(String last) { this.last = last; }
}