[Spring] Spring Bean이란?
Spring Bean이란?
- Spring IoC 컨테이너가 관리하는 자바 객체를 Bean이라고 한다.
- 직접 new를 이용하여 생성한 객체가 아니라, Spring에 의하여 생성되고 관리되는 객체이다.
- ApplicationContext.getBean()과 같은 메소드를 사용하여 Spring에서 직접 자바 객체를 얻어서 사용한다.
OwnerController ownerController = new OwncerContraoller();
-> Bean 객체 X
OwnerController bean = applicationContext.getBean(OwnerController.class);
-> Bean 객체 O
Spring IOC Container에 Bean을 만드는 법
방법 1. Component Scanning
@ComponentScan
annotation은 또다른 annotation이 달린 class를 찾기 위해 어느 지점부터 살펴보아야 하는지 알려준다.
@Component
, @Controller
, @Service
, @Repository
등 모두 찾아 Bean으로 등록해 주는 것이 Component Scanning이다.
- 위 예제에서 직접 OwnerController를 빈으로 등록하지 않더라도 Spring이 알아서 IOC Container가 만들어질 때, 스캔해서 annotations를 보고 자동으로 bean으로 등록해준다.
OwnerController ownerController = new OwncerContraoller();
-> Bean 객체 X
OwnerController bean = applicationContext.getBean(OwnerController.class);
-> Bean 객체 O
방법 1. Component Scanning
@ComponentScan
annotation은 또다른 annotation이 달린 class를 찾기 위해 어느 지점부터 살펴보아야 하는지 알려준다.@Component
,@Controller
,@Service
,@Repository
등 모두 찾아 Bean으로 등록해 주는 것이 Component Scanning이다.- 위 예제에서 직접 OwnerController를 빈으로 등록하지 않더라도 Spring이 알아서 IOC Container가 만들어질 때, 스캔해서 annotations를 보고 자동으로 bean으로 등록해준다.
@Controller public class HelloController { @GetMapping("hello") public String hello(Model model){ model.addAttribute("data", "hello!"); return "hello"; }
방법 2. Bean Configuration File에 직접 등록
@Configuration
을 사용하여 Spring 프로젝트에서 Configuration 역할을 하는 class를 지정할 수 있다.- 해당 파일 하위에
@Bean
을 사용하여 등록하고자 하는 class를 bean으로 등록한다.
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class SpringConfig { @Bean public MemberService memberService(){ return new MemberService(memberRepository); } }
References
Author And Source
이 문제에 관하여([Spring] Spring Bean이란?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ssoyeong/Spring-Spring-Bean이란저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)