[스프링 입문] 스프링 빈과 의존관계

JYC·2024년 1월 3일

[SPRING STUDY]

목록 보기
5/39

스프링 빈의 장점

  • DI(의존성 주입):빈으로 등록된 객체들은 스프링 컨테이너에 의해 관리되며, 필요한 의존성은 자동으로 주입된다. 코드의 유지 보수성이 향상되고 유연성이 증가한다.

  • AOP(Aspect-Oriented Programming) 지원: 스프링은 AOP를 지원하여 관심사(Concern)를 분리할 수 있게 합니다.

  • 테스트 용이성


스프링 빈을 등록하는 2가지 방법

  • 컴포넌트 스캔과 자동 의존관계 설정
  • 자바 코드로 직접 스프링 빈 등록하기

컴포넌트 스캔과 자동 의존관계 설정

  • @Component 애노테이션이 있으면 스프링으로 자동 등록된다.
  • @Component 를 포함하는 다음 애노테이션도 스프링 빈으로 자동 등록된다.
    • @Controller
    • @Service
    • @Repository

각각의 @Controller / @Service / @Repository 를 해당하는 Controller / Service / Repository에 입력해주면 된다.

예)

@Controller
public class MemberController {
    private final MemberService memberService;

    @Autowired
    public MemberController(MemberService memberService) {
        this.memberService = memberService;
    }
}
@Service
public class MemberService {
    private final MemberRepository memberRepository;

    public MemberService(MemberRepository memberRepository) {
        this.memberRepository = memberRepository;
    }
}
@Repository
public class MemoryMemberRepository implements  MemberRepository{}

자바 코드로 직접 스프링 빈 등록하기

MemberService / MemberRepository의 @Service, @Repository 애노테이션을 제거하고 진행한다.

예)

@Configuration
public class SpringConfig {
 @Bean
 public MemberService memberService() {
 return new MemberService(memberRepository());
 }
 @Bean
 public MemberRepository memberRepository() {
return new MemoryMemberRepository();
 }
}
profile
열심히 하기 1일차

0개의 댓글