내가 질문을 제대로 이해하고있어 확실하지. "flowRegistry"빈은 어떻게 구성되어 있습니까? 또는 더 나은 아직 전체 봄 webflow 구성?
가능한 해결책 :
1. 당신은 "흐름 위치 패턴"에 와일드 카드로 전달할 수 있습니다 (예를 들어, 값 = "/ **/* - flow.xml") 검색 패턴을 제공합니다.
2.는 또한 흐름 (스캔)의 루트 디렉토리가 시작 위치를 나타냅니다 흐름 - 레지스트리에 기본 경로 속성을 설정할 수 있습니다.
3. 마침내 당신은 명시 적으로 흐름 위치 경로를 사용하여 흐름을 선언 할 수 = "..."
아래의 샘플 구성은 위에서 언급 한 3 가능한 CONFIGS를 사용하는 방법을 보여줍니다.
샘플 구성 : 유동 위치 패턴 값 = "클래스 경로 */META-INF/자원/xyzweb
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:webflow="http://www.springframework.org/schema/webflow-config"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/webflow-config http://www.springframework.org/schema/webflow-config/spring-webflow-config.xsd">
<!-- The registry of executable flow definitions -->
<webflow:flow-registry id="flowRegistry" base-path="/WEB-INF/flows/s" flow-builder-services="flowBuilderServices">
<webflow:flow-location-pattern value="/**/*-flow.xml" />
<!-- <webflow:flow-location path="/flows/main-flow.xml" />-->
</webflow:flow-registry>
는 이미 우리가 제공하는 위치 패턴이 무엇이든, 스프링은 WEB-INF/lib 디렉토리 아래의 모든 병을 검사합니다. 나는 스프링이 필터 기준과 일치하는 주어진 jar 이름에서만 스캔을 수행 할 수 있도록 이러한 jar 스캔을 어떻게 필터링 할 수 있는지 알고 싶습니다. 예 : WEB-INF/lib 디렉토리에 700 개의 jar 파일이 있고 flow.xml 파일을 찾기 위해 검사해야하는 jar 파일이 10 개 밖에 없다는 것을 알았습니다. 나머지는 로깅, 스프링 코어 jar와 같은 다른 종속성 jar 파일입니다. –
Krishna
lib 디렉토리를 스캔해야한다고 생각하지 않습니다. 프로젝트 구조가 표준 규칙을 사용하지 않는다고 생각합니다. 리소스 로더 웹 플로우는 모든 스프링 프로젝트 (spring-core.jar)에서 사용되는 표준 리소스 로더입니다. 다음 위치에 중단 점을 배치하는 것이 좋습니다. 1) org.springframework.webflow.config.FlowRegistryFactoryBean registerFlowLocationPatterns() 2) org.springframework.core.io.support.PathMatchingResourcePatternResolver getResources (String locationPattern). lib 디렉토리가 스캔되는 이유를 확인하십시오. – Selwyn
flow.xml 파일이 jar 파일에 포함 된 이유는 무엇입니까? – Selwyn