저는 수천 개의 pojos를 포함하고있는 기존 프로젝트에 Spring 프레임 워크를 통합하려고합니다.
XML 구성 파일을 작성하거나 각 파일을 검토하고 클래스에 주석을다는 것은 힘든 작업입니다. 따라서 스프링 스캔 패키지를 만들고 이름 규칙에만 기반하여 빈을 식별 할 수있는 방법이 있습니까?xml이나 주석을 사용하지 않고 스프링 식별 빈을 어떻게 만들 수 있습니까?
답변
@Component
- 스캔 동작은 <context:component-scan>
입니다. 이름 기반 필터를 사용하여 동작을 사용자 정의 할 수 있습니다. 예제 section 3.10.3 of the manual를 참조하십시오
<beans>
<context:component-scan base-package="org.example">
<context:include-filter type="regex" expression=".*Stub.*Repository"/>
<context:exclude-filter type="annotation"
expression="org.springframework.stereotype.Repository"/>
</context:component-scan>
</beans>
그래서 당신이 클래스의 명명 규칙에 의해 당신의 bean을 감지 할 수 있습니다.
세 번째 옵션은 @Configuration 및 @Bean Annotation을 사용하고 Java-based container configuration을 사용하는 것입니다. 그러나 당신은 당신의 의존성을 연결하고 빈을 만드는 코드를 작성하고 있습니다.
감사합니다. 매우 흥미로운 옵션 인 것 같습니다. – Mehdi
자신에게 질문해야 할 첫 번째 질문은 모든 콩을 연결하는 것이 정말로 필요한가요? 시스템의 모든 객체 중에서 구성 가능한 유일한 하위 세트와 다른 유선 bean에 종속 된 하위 세트 만 실제로 연결해야합니다.
당신 말이 맞아요.하지만 유선 연결이 필요한 콩이 무엇인지 알아 내서 번호를 좁히더라도 번호는 여전히 거대합니다 (엔터프라이즈 응용 프로그램을 다루고 있습니다) – Mehdi
Bozho와 동의하십시오.
임시 해결 방법이 있습니다. 자신의 사용자 정의 BeanFactoryPostProcessor을 정의 할 수 있습니다. 여기서 명명 규칙에 따라 기존 프로젝트의 클래스를 검색하고 기존 프로젝트의 클래스에 BeanDefinition을 등록 할 수 있습니다.
예, 코딩이 필요하며 상자에서 꺼내는 것이 아닙니다.
- 1. 부분적으로 스프링 빈을 autowire 할 수 있습니까?
- 2. 어떻게 ApplicationContext에서 싱글 톤 스프링 빈을 제거 할 수 있습니까?
- 3. 주석을 사용하지 않고 GAE/java에서 데이터를 유지할 수 있습니까?
- 4. MonoDevelop에서 MonoTouch 프로젝트에 대한 XML 주석을 어떻게 만들 수 있습니까?
- 5. 주석을 사용하지 않고 Jackson JSON 프로세서를 사용하십시오.
- 6. 현재 XNA를 사용하지 않고 테트리스를 만들 수 있습니까? C# 사용?
- 7. where 절을 사용하지 않고 사용자 지정 식을 만들 수 있습니까?
- 8. 레일에서 양식을 사용하지 않고 만들
- 9. BOM을 사용하지 않고 비 ASCII 문자로 시작하는 파일에 대해 다른 인코딩을 어떻게 식별 할 수 있습니까?
- 10. 구성 요소 검색으로 시작된 스프링 빈을 무시할 수 있습니까?
- 11. 는 스프링 빈을 만들기 ServletRequest의 속성을 보유하고
- 12. 어떻게 클래스를 가지지 않고 DLL을 만들 수 있습니까?
- 13. 컴포넌트 스캐닝을 사용하지 않고 Spring의 Autowire Annotation
- 14. 어떻게 이미지에서 원을 만들 수 있습니까? 플롯 기능을 사용하지 않습니까?
- 15. 인증 쿠키는 어떻게 만들 수 있습니까? asp.net formsauthentication을 사용하지 않으시겠습니까?
- 16. 다른 모듈의 스프링 빈을 사용 하시겠습니까?
- 17. 누가 스프링 웹 애플리케이션에 빈을 생성하나요?
- 18. 목록 모듈을 사용하지 않고 Erlang의 목록을 어떻게 연결할 수 있습니까?
- 19. SQL 쿼리에서 "&"를 사용하지 않고 어떻게 사용할 수 있습니까?
- 20. Perl 형식을 사용하지 않고 어떻게 열을 포맷 할 수 있습니까?
- 21. CPAN.pm을 사용하지 않고 어떻게 Perl 모듈을 설치할 수 있습니까?
- 22. 중첩 된 함수를 사용하지 않고 ODE를 어떻게 해결할 수 있습니까?
- 23. JavaScript로 JQuery 라이브러리를 사용하지 않고 어떻게 다시 작성할 수 있습니까?
- 24. jQuery를 사용하지 않고 입력별로 어떻게 입력 할 수 있습니까?
- 25. abort()를 사용하지 않고 어떻게 assert() 할 수 있습니까?
- 26. 레일에서 self.attribute =를 사용하지 않고 어떻게 할당 할 수 있습니까?
- 27. 클래스를 사용하지 않고 MVC 아이디어를 어떻게 사용할 수 있습니까?
- 28. 어떻게 JDBC를 사용하지 않고 java에서 .sql 파일을 실행할 수 있습니까?
- 29. 따옴표를 사용하지 않고 문자열을 쿼리에 어떻게 배치 할 수 있습니까?
- 30. .htaccess를 사용하지 않고 이미지를 어떻게 gzip 할 수 있습니까?
' '을 사용하는 것이 잘못된 이유는 무엇입니까? 그게 당신이 필요로하는 일을하는 것처럼 들리네. –
skaffman
@skaffman : 문제는 기존 코드를 수정하고 싶지 않기 때문에 사용한다면 @component 또는 특수 주석 중 하나에 배선해야하는 모든 클래스에 수동으로 주석을 추가해야합니다. – Mehdi
그래서 콩을 식별하고 싶습니까? 예를 들어 줄 수 있습니까? – skaffman