@Component
- Spring에서 해당 클래스의 인스턴스를 싱글톤 생성
- Spring Context 내에서 전역적으로 사용가능하게 한다
@Component
어노테이션은 Spring에서 해당 클래스의 인스턴스가 필요할 때 Spring이 직접 관리하도록 해줍니다
이렇게 하면 Spring IoC Container는 이 클래스의 라이프사이클을 관리하게 됩니다.
다시 말해, 이 클래스의 인스턴스를 언제 생성하고, 언제 소멸시킬지 등을 결정하게 됩니다.
또한, 이 클래스를 필요로 하는 다른 클래스에게 자동으로 제공할 수 있게 됩니다.
이것은 모듈 간의 의존성 관리(DI (Dependency Injection))를 더욱 편리하게 만들어줍니다.
필요한 객체를 직접 생성하거나 찾는 대신, 필요한 곳에 적절하게 주입되도록 할 수 있습니다.
사용 예제
다음은 @Component
를 사용하여 클래스를 Spring 컨테이너가 관리하도록 하는 간단한 예제입니다.
@Component
public class ExampleComponent {
//… class body
}
이렇게 하면, 이 클래스의 인스턴스는 애플리케이션 전체에서 사용 가능해집니다.
FakeStore 클래스에 @Component 사용하기
FakeStore 클래스는 더미 데이터를 생성하고 관리하는 클래스입니다.
@Component
를 사용하여 이 클래스를 Spring Bean으로 등록하면, 이 클래스의 인스턴스는 애플리케이션 전체에서 사용 가능하게 됩니다.
- 먼저, 더미 데이터를 생성하는 메서드를 정의합니다.
private List<Product> productDummyList() {
// Create an empty list to store product information.
List<Product> productList = new ArrayList<>();
// Create dummy data and add it to the list.
productList.add(new Product(1L, "Product1", 10000, "description1"));
productList.add(new Product(2L, "Product2", 20000, "description2"));
// Returns a list with dummy data.
return productList;
}
- 그 다음, 생성된 더미 데이터를 관리할 필드를 정의합니다.
private List<Product> productList = productDummyList();
- 이제, 이 클래스를 Spring Bean으로 등록하기 위해
@Component
어노테이션을 추가합니다.
@Component
public class FakeStore {
private List<Product> productList = productDummyList();
// … more code here
}
이제, 이 클래스는 Spring이 관리하는 클래스가 되었으며, 필요한 곳에서 이 클래스의 인스턴스를 주입받아 사용할 수 있게 되었습니다.
이를 통해, 더미 데이터를 쉽게 관리하고 애플리케이션 전체에서 사용할 수 있게 되었습니다.
부족한 점이나 잘못 된 점을 알려주시면 시정하겠습니다 :>
728x90
'DEV > Java' 카테고리의 다른 글
DataJpaTest (0) | 2023.07.11 |
---|---|
@ToString (0) | 2023.07.10 |
SQL 조인에 대한 이해 - Outer Join과 Inner Join (0) | 2023.07.07 |
Meta 어노테이션 (0) | 2023.07.07 |
IoC (0) | 2023.07.07 |