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' 카테고리의 다른 글
[Gasip] Redis & Sync Schedule 을 적용해 조회수 동시성 처리 (2) | 2024.04.12 |
---|---|
[Gasip] 게시글 조회수 중복 방지 처리 로직 구현 (2) | 2024.04.01 |
스프링 컨테이너 DI와 IoC (2) | 2024.02.28 |
[채팅] 채팅 메세지 전송 속도 개선 (3) | 2024.02.14 |
[채팅] 채팅방 리스트 최신화 속도 개선 (3) | 2024.02.09 |