2017-10-05 1 views
0

저는 완벽한 주석이있는 봄 mvc 응용 프로그램이 있습니다. @componentScan을 추가하는 가장 좋은 장소는 어디입니까? 내가 알기로 이들 중 어느 것을 알려 주겠다.어디에 부품을 배치 할 수 있습니까?

  1. AbstractAnnotationConfigDispatcherServletInitializer를 확장 한 클래스는 무엇입니까? 확장 WebMvcConfigurationSupport
  2. 클래스를 확장
  3. 클래스 I 보안 및 workign 미세없이 2에 배치 WebSecurityConfigurerAdapter

. 보안을 추가 할 때 보안 설정에서 userdetails 서비스를 찾을 수 없다는 문제점이 있습니다. 그런 다음 3으로 이동했습니다. 보안 관련 문제가 발견되어 getRootConfigClasses()의 securityconfig 객체 대신 null을 다시 보냅니다. 그런 다음 컨트롤러에 문제가 없습니다. 나는 컴 파트먼트 2를 넣으려고 고칠 수있다.

나는 단지 어떤 링크와 그것이 어떻게 작동하는지 알고 싶다. 이 3 가지 모두에 @componentscan을 넣어도 괜찮습니까? 당신의 도움을 주셔서 감사합니다.

답변

0

프로젝트의 패키지 트리와 스캔 할 항목에 따라 다릅니다. 다음과 같은 주석을 사용하여 모든 주석 처리 된 클래스를 검사하려면 @Configuration, @Component, @Repository, etc...@ComponentScan을 패키지 트리의 맨 위에 놓으십시오.

basePackages 특성을 사용하여 검색을 시작할 위치를 지정할 수도 있습니다.

는이 같은 조직 응용 프로그램 패키지를 가지고 말 :

com.app.config, com.app.config.web, com.app.services, com.app.web.controllers

당신이 모든 annoted 클래스를 스캔 com.app 패키지에 @ComponentScan와 annoted 클래스를 넣어합니다.

당신 만 컨트롤러를 스캔 @ComponentScan(basePackages="com.app.web.controllers")

그것은 결정하는 당신까지 추가합니다.

+0

답장을 보내 주셔서 감사합니다. 더미 클래스 MyClass를 패키지 com.app에 주석 @componentScan을 사용하여 모든 것을 스캔 할 수 있습니까? 아니면 AbstractAnnotationConfigDispatcherServletInitializer를 구현하는 클래스처럼 메인 클래스에서 스캔합니까? 보안 구성 객체가 반환되거나 null이 반환 된 경우에 따라 모든 콩을 만드는 방법을 이해하려고합니다. – chinni

+0

네, 가능하다면 그 클래스에 '@ Configuration'도 추가 할 수 있습니다. com.app 패키지 및 하위 패키지에 선언 된 모든 bean이 발견됩니다. Spring Boot로 언젠가 작업한다면이 점을 이해하는 것이 중요합니다. – akuma8

+0

감사합니다. 그것을 시도 할 것이다. 바로 지금 @componentScan을 두 클래스에 넣습니다. 그래서 어떤 순서로든 객체가 만들어지면 빈은 아무런 문제없이 사용할 수 있습니다. – chinni

관련 문제