인프런 커뮤니티 질문&답변

전지윤님의 프로필 이미지
전지윤

작성한 질문수

스프링 핵심 원리 - 기본편

탐색 위치와 기본 스캔 대상

스프링 빈 관련 질문입니다....

작성

·

160

0

안녕하세요 선생님

실무에서는 애플리케이션을 개발할 때  클래스를 만들면 대부분 스프링 빈으로 등록한다고 생각해도 될까요???

항상 좋은 강의와 좋은 답변 감사드립니다!!!(꾸벅)

답변 1

0

안녕하세요. 전지윤님, 공식 서포터즈 OMG 입니다.

해당 질문에 대해선 이 강의의 자동, 수동의 올바른 실무 운영 기준 챕터에서  설명중이신데요,

탐색 위치와 기본 스캔 대상 까지 들으셨으니 조금만 더 들으면 영한님께서 자세히 알려주시니 저는 간단하게만 설명 드릴게요.  

우리가 스프링으로 애플리케이션을 개발 할 때 @Controller, @Service 등 비즈니스 요구사항을 개발할 때 추가되는 업무 로직 빈은 스프링 컨테이너가 관리하는 빈으로 컴포넌트 스캔의 대상이 되도록하여 자동으로 등록합니다.

반면 Member , Book, Item 등의  POJO 객체들은 스프링 빈으로 등록하지 않습니다. 데이터 전송 목적으로 쓰는 DTO도요.

또 다른 경우로는 수동으로 스프링 빈을 등록하는 경우가 있는데 주로 기술지원 로직에 사용됩니다. 아래와 같은 경우가 그 경우에 해당하는데요, PasswordEncoder는 스프링 시큐리티가 제공하는 기능으로 암호화를 담당하고, ModelMapper는 object가 갖고 있는 필드 값들을 편리하게 mapping 해주는 라이브러리입니다. 

,

지금 당장 감이 잘 안잡히시더라도 영한님께서 다음 강의(자동, 수동의 올바른 실무 운영 기준 )에서 설명해 주시니 참고하시길 바랍니다.

@Configuration
public class AppConfig {

@Bean
public PasswordEncoder passwordEncoder() {
return PasswordEncoderFactories.createDelegatingPasswordEncoder();
}

@Bean
public ModelMapper modelMapper() {
ModelMapper modelMapper = new ModelMapper();
modelMapper.getConfiguration()
.setDestinationNameTokenizer(NameTokenizers.UNDERSCORE)
.setSourceNameTokenizer(NameTokenizers.UNDERSCORE);
return modelMapper;
}

}


감사합니다.

전지윤님의 프로필 이미지
전지윤
질문자

앗.. 강의에있는줄 몰랐습니다 ㅠㅠ그러고 보니 Member클래스나 Order클래스는 빈으로 등록을 안하고 ServiceImpl 등 비즈니스로직을 처리하는 클래스는 빈으로 등록한거 같습니다...좋은답변 항상 감사합니다!! 

전지윤님의 프로필 이미지
전지윤

작성한 질문수

질문하기