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

blashi님의 프로필 이미지
blashi

작성한 질문수

스프링 핵심 원리 - 기본편

탐색 위치와 기본 스캔 대상

@SpringBootApplication에 ComponetScan이 있다면 특별한 경우가 아니면 ComponentScan을 쓸 필요가 없나요?

해결된 질문

작성

·

233

1

안녕하세요 김영한 선생님! 강의 정말 잘 듣고 있습니다.

이번 강의를 듣다가 몇가지 의문점이 생겨서 질문드립니다^^

1. @SpringBootApplication 에 대한 강사님의 설명을 듣고보니, @ComponentScan이 @SpringBootApplication에 있으니 굳이 따로 해줘야하나 하는 생각이 들었습니다. filter를 이용해야 하는 경우와 같이 특별한 경우가 아닐 경우에는 굳이 다른 클래스에서 @ComponentScan을 사용할 필요는 없는 건가요?

2. 기존에 Configuration을 담당하던 클래스에 들어갔던 정보들이 이제는 스프링을 통해서 관리가 돼는 것을 이해했습니다. 여기까지만 봤을땐 Configuration을 담당하는 클래스는 이제 없어져도 무방한 것 같다는 생각이 들어서요. 근데 실제로 그럴 거 같지는 않아서 Configuration을 담당하는 클래스에는 어떤 정보들이 추가로 들어가나요?

답변 1

1

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

1. 스프링부트가 기본으로 설정해 놓은 컴포넌트 스캔 위치를 바꾸실 필요 없이 디폴트 값으로 진행하시면 됩니다. 추후 필요에 의해 바꿔야 될 때가 있다면 그 때 고려하시면 됩니다.

2. 강의를 조금 더 수강하시면 자동, 수동의 올바른 실무 운영 기준 에서 설명해주시는데요,

설명은 위와 같으며 예시를 들면 다음과 같습니다.

-Security와 관련된 설정 파일

-> 상속받은 클래스의 메서드를 재정의합니다.

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.mvcMatchers("/", "/login").permitAll()
.anyRequest().authenticated();

http.formLogin()
.loginPage("/login").permitAll();

http.logout()
.logoutSuccessUrl("/");

}
}

 

- Web과 관련된 설정 파일

figuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addFormatters(FormatterRegistry registry) {
registry.addConverter(new StringToIntegerConverter());

}
}

 

- cache 관련 설정 파일

@Configuration(proxyBeanMethods = false)
@EnableCaching
class CacheConfiguration {

@Bean
public JCacheManagerCustomizer petclinicCacheConfigurationCustomizer() {
return cm -> {
cm.createCache("vets", cacheConfiguration());
};
}
private javax.cache.configuration.Configuration<Object, Object> cacheConfiguration() {
return new MutableConfiguration<>().setStatisticsEnabled(true);
}

}

수동으로 빈을 등록하거나, 재정의해서 설정을 개발자가 원하는대로 바꾸는 것이 주 목적이며

각 영역 혹은 기능(웹, 보안, 캐시) 별로 구분지어 작성하는 예시를 보여드렸습니다.

감사합니다. 

blashi님의 프로필 이미지
blashi
질문자

명확한 설명 감사드립니다!! 

blashi님의 프로필 이미지
blashi

작성한 질문수

질문하기