@Configuration
한 개 이상의 @Bean을 제공하는 클래스에 명시하는 어노테이션으로, IOC Container에게 해당 클래스가 Bean으로 구성된 클래스라는 것을 알려줍니다.
@Bean
개발자가 직접 제어할 수 없는 외부 라이브러리들을 Bean으로 만들 때 사용합니다.
@Configuration
public class SpringConfig {
@Bean
public MemberService memberService() {
return new MemberService(memberRepository());
}
@Bean
public MemberRepository memberRepository() {
return new MemoryMemberRepository();
}
}
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
@Autowired
필드, 생성자, 수정자 메소드에 사용하는 어노테이션으로, 무조건적인 객체에 대한 의존성을 주입시킵니다.
@Component
Java Bean에 등록하지 않아도 자동 주입이 가능하도록 해주는 어노테이션입니다. 개발자가 직접 개발한 클래스를 Bean에 등록할 경우 @Component 어노테이션을 사용하면 됩니다.
@Autowired
스프링에서 빈 인스턴스가 생성된 후, @Autowired로 설정된 메소드, 필드가 자동으로 호출됩니다.
@Controller
해당 클래스가 Controller임을 명시합니다. @Component 어노테이션을 사용해도 상관 없지만 @Cotroller 어노테이션에 @Component 어노테이션의 기능이 포함되어 있고 @Controller를 사용함으로써 해당 클래스가 Controller 역할을 하는 것을 명확하게 알 수 있습니다.
@Controller
public class MemberController {
private final MemberService memberService;
@Autowired
public MemberController(MemberService memberService) {
this.memberService = memberService;
}
}
@Service
해당 클래스가 비즈니스 로직을 담은 Service 클래스임을 명시합니다. @Component 어노테이션을 사용해도 상관 없지만 @Sevice 어노테이션에 @Component 어노테이션의 기능이 포함되어 있고 @Service를 사용함으로써 해당 클래스가 Service의 역할을 하는 것을 명확하게 알 수 있습니다.
@Repository
해당 클래스가 Repository임을 명시합니다. @Component 어노테이션을 사용해도 상관 없지만 @Repository 어노테이션에 @Component 어노테이션의 기능이 포함되어 있고 @Repository를 사용함으로써 해당 클래스가 Repositorydml 역할을 하는 것을 명확하게 알 수 있습니다.
'Java Web > Spring' 카테고리의 다른 글
[Spring] Dependency Injection(의존성 주입) (0) | 2021.08.10 |
---|---|
[Spring] 스프링 부트 Gradle 빌드에서 .jsp와 jstl 적용 (0) | 2021.07.25 |
[Spring] 생성자(Constructor) 주입, 필드(Field) 주입, 수정자(Setter) 주입 (0) | 2021.07.20 |
[Spring] 스프링 부트 윈도우 명령 프롬프트에서 Spring 빌드하는 법 (0) | 2021.07.18 |
[Spring] 스프링 스프링 부트 차이 (0) | 2021.07.17 |