1. 스프링 빈?
정의(What?)
IoC 컨테이너(스프링 컨테이너) 안에 들어있는 객체로, 필요 시 스프링 컨테이너에서 가져와서 사용한다.
싱글톤으로 저장되기 때문에 객체의 재사용이 가능하다.
왜써?(why?)
스프링 컨테이너에서 개발자 대신 객체를 관리하도록 하기 위함.
객체를 개발자가 직접 생성하고 관리하는 것이 아니라 스프링 컨테이너에 스프링 빈으로 등록하고 컨테이너가 연관관계를 맺고 관리하도록 할 수 있다.
스프링 빈을 등록하는 방법은 아래와 같다.
1. @Bean 어노테이션 + ComponentScan 어노테이션
@ComponentScan(basePackages= {"com.example.myapp"}) @ImportResource(value= {"classpath:application-config.xml"}) public class AppConfig { @Bean public MemberService memberService() { return new MemberService(); } @Bean public DiscountPolicy rateDiscountPolicy() { return new RateDiscountPolicy(); } @Bean public DiscountPolicy fixDiscountPolicy() { return new FixDiscountPolicy(); } }
메서드 위에 @Bean을 작성하고 클래스에 @ComponentScan을 통해 스프링 빈으로 등록한다.
2. @Component,@Controller,@Service,@Repository 어노테이션 + ComponentScan 어노테이션
@Controller public class EmpController { private IEmpService empService; @Autowired public EmpController(IEmpService empService) { this.empService = empService; } void printInfo() { int count = empService.getEmpCount(50); System.out.println("사원의 수 : " + count); } }
'Development > Spring&Springboot' 카테고리의 다른 글
스프링 컨테이너 DI와 IoC (2) | 2024.02.28 |
---|---|
SpringBoot 내 html 파일을 어떻게 불러오는지 모르겠다면 (0) | 2023.07.04 |
[JPA] 스프링 관련 어노테이션 (0) | 2023.03.06 |