책을 읽으면서 @Autowired @Repository 등의 어노테이션을 보면서 기존 Java bean과 차이가 무엇인지 궁금해 해당 어노테이션의 의미, 기능, 원리 등을 검색 해보면 스프링의 DI(의존성 주입)를 위해 IoC컨테이너가 관리하는 객체라고 설명하면서 여러가지 설명을 하고있다.
자바 빈은 private 필드, 전달 인자가 없는 생성자, getter와 setter로만 접근, 관리하는 자바 객체이고
스프링 빈은 스프링 IoC컨테이너에서 관리되는 자바 객체를 스프링 빈이라고 부른다.
스프링 IoC컨테이너에 자바 객체를 빈으로 등록하기 위해서는 @Bean 혹은 @Component를 사용할 수 있다.
@Bean과 @Component의 차이는 이동욱님의 블로그에서 확인 할 수 있었다.
@Bean은 메소드 레벨에서 반환되는 객체(인스턴스)를 개발자가 수동으로 빈에 등록되게 하는 어노테이션,
@Component는 클래스 레벨에서 스프링이 자동으로 빈을 찾고 등록하는 어노테이션이다. @Repository @Controller @Service 어노테이션은 MVC패턴을 위해 스프링에서 관리하는 어노테이션이다.
https://jojoldu.tistory.com/27
https://baek-kim-dev.site/64#recentEntries
'study > java&spring' 카테고리의 다른 글
spring.jpa.properties.hibernate.dialect= org.hibernate.dialect.mysql5innodbdialect 사용 불가, Deprecated 문제 (1) | 2022.01.04 |
---|---|
@WebMvcTest @SpringBootTest 차이 (0) | 2022.01.02 |
[gradle] Lombok plugin 빌드 오류 해결 (0) | 2021.12.31 |
Gradle 5의 lombok 설정 (0) | 2021.12.31 |
build.gradle: apply plugin과 plugins의 차이 (0) | 2021.12.29 |