Bean
)이라고 부른다.main
메서드가 있는 class의 동일 패키지 또는 하위 패키지에서@Component
어노테이션이 붙어 있을 경우 Spring이 스캔하여 컨테이너에 담는다. @Controller
, @Service
, @Repository
등의 어노테이션은 모두 이 @Component
어노테이션을 포함하고 있다.true
이기 때문에 의존성 주입을 할 대상을 찾지 못한다면 애플리케이션 구동에 실패한다. 서버 기동시 연결에 실패하면 에러가 발생하므로 테스트 없이도 에러를 발견할 수 있다.@Autowired
가 있으면 스프링이 연관된 객체를 스프링 컨테이너에서 찾아서 넣어 준다.@Autowired
에 의해 스프링이 주입해 준다. @Autowired private MemberRepository memberRepository;
private MemberRepository memberRepository; // @Autowired public void setMemberRepository(MemberRepository memberRepository;) { this.memberRepository = memberRepository; }
private final MemberRepository memberRepository; // private final 선언이 가능 @Autowired public MemberService(MemberRepository memberRepository) { this.memberRepository = memberRepository; }
➕ POJO : 직접 객체를 생성하는 방식.
MemberRepository memberRepository = new MemoryMemberRepository();