Q1.
(08-06)
Bean을 Bean 클래스라고 말해도 무방할까?
A1.
GitHub Copilot
네, 일반적으로 Spring에서 Bean은 Spring 컨테이너에 의해 관리되는 객체를 의미합니다. 따라서 "Bean"을 "Bean 클래스"라고 말해도 무방합니다. 다만, 정확히 말하면 Bean은 클래스의 인스턴스(객체)를 의미합니다.
예를 들어, @Service 어노테이션이 붙은 MyCalcServiceImpl 클래스는 Spring 컨테이너에 의해 관리되는 Bean입니다. 이 클래스의 인스턴스가 Spring 컨테이너에 의해 생성되고 관리됩니다.
따라서, MyCalcServiceImpl 클래스는 Bean 클래스라고 할 수 있으며, 이 클래스의 인스턴스는 Spring Bean이라고 할 수 있습니다.
현재 파일의 예시에서 @Service 어노테이션이 붙은 MyCalcServiceImpl 클래스는 Spring에 의해 Bean으로 인식되고 관리됩니다:
@Service // <== 비지니스 로직을 구현하는 모든 구현체 클래스에 명시
public class MyCalcServiceImpl implements MyCalcService {
// 이 객체가 생성되었음을 확인하기 위해 생성자를 정의
// 보통의 service 구현체는 생성자를 정의하지 않음 -> HomeController.java 에서 @Autowired 로 자동으로 객체의 생성-할당이 됨.
public MyCalcServiceImpl() {
log.debug("MyCalcServiceImpl 생성자로 만들어부려쓰");
}
@Override
public int plus(int x, int y) {
return x + y;
}
@Override
public int minus(int x, int y) {
return x - y;
}
}
이 클래스는 Spring 컨테이너에 의해 관리되며, 다른 클래스에서 @Autowired 어노테이션을 통해 주입받을 수 있습니다.
'언어 및 도구들 공부 > Spring' 카테고리의 다른 글
index.html, 홈 (0) | 2024.10.19 |
---|---|
application.properties 설정값 (0) | 2024.10.19 |
@Component, Bean, 그리고 싱글톤으로 생성 (0) | 2024.10.17 |
객체 의존성 주입 (0) | 2024.10.17 |
객체 의존성 주입 대상 범위 (0) | 2024.10.17 |