반응형
스프링 빈을 동록하고, 의존관계 설정하기
리포지토리랑 서비스를 다 만들고 화면을 붙이고 싶다면 컨트롤러와 뷰 템플릿이 필요하다.
멤버 컨트롤러를 만들게 되면 이 컨트롤러는 멤버서비스를 통해서 회원가입하고 데이터를 조회할 수 있어야한다.
이 경우에 멤버 컨트롤러가 멤버 서비스를 의존한다고 표현한다.
스프링이 뜰 때 컨트롤러의 객체를 생성해서 스프링이 가지고있다.
이를 스프링 빈을 관리한다고 표현한다.
스프링은 스프링 컨테이너에 스프링 빈을 등록할 때, 유일하나 하나만 등록해서 공유한다.(싱글톤)
같은 스프링빈이면 모두 같은 인스턴스이다.
1 컨포넌트 스캔방식
스프링이 서비스, 리포지토리, 컨트롤러 들을 관리 할 수 있으려면 각각 @Service, @Repository, @Controller 를 명시 해줘야한다. 이것을 스프링 빈으로 등록하는 과정이라고 할 수 있다.
그 대신 @Coponent를 해도되는데 @Service, @Repository, @Controller 안에는 @Coponent가 다 포함되어있다.
그 후 @Autowired 로 지동으로 의존관계가 설정되도록 한다.
main이 있는 폴더가 아니라면 스캔이 안되기 때문에 main이 있는 폴더 안에 있는것들만 유효하다!
2 자바 코드로 직접하는 방식
@Configuration이 들어간 Config파일을 만든다.
추가하고싶은 스프링 빈을 @bean을 통해 추가해준다.
package hello.hellospring.service;
import hello.hellospring.repository.MemberRepository;
import hello.hellospring.repository.MemoryMemberRepository;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class SpringConfig {
@Bean
public MemberService memberService(){
return new MemberService(memberRepository());
}
@Bean
public MemberRepository memberRepository(){
return new MemoryMemberRepository();
}
}
반응형
'공부 > Spring - 김영한' 카테고리의 다른 글
[ spring ] 예제 - 회원관리 : 스프링DB 접근기술 (0) | 2023.02.08 |
---|---|
[ spring ] 예제 - 회원관리 : 웹 MVC 개발 (0) | 2023.01.26 |
[ spring ] 예제 - 회원 관리 : 도메인, 리포지토리, 서비스, 테스트케이스 (0) | 2023.01.12 |
[ Spring ] 스프링 웹 개발 기초 : 정적컨텐츠, MVC와 템플릿엔진, API (0) | 2022.08.07 |
[ Spring ] Welcome Page 만들기 및 컴파일 (0) | 2022.08.06 |