복붙노트

[SPRING] flow.xml에서 로그 인쇄하기

SPRING

flow.xml에서 로그 인쇄하기

스프링 웹 플로우로 웹 어플리케이션을 작성 중입니다. flow.xml 파일에서 작업하는 동안 나는 이와 같은 결정 상태를 얻었습니다.

<decision-state id="checkPermissin">    
    <if test="requestParameters.canApprove" then="approve" else="warning" />
</decision-state>  

요청이 flow.xml에 도착하면 요청 매개 변수 canApprove를 가져 와서 true인지 false인지 테스트합니다. 그런 다음 승인 또는 경고 상태 중 하나로 이동합니다.

제 질문은 - canApprove의 상태를 flow.xml 파일에서 로그 / 인쇄 할 수 있습니까?

해결법

  1. ==============================

    1.종료 상태의 태그를 '결정 - 상태'의 끝에 추가하고 클래스 패스에있는 모든 서비스 메소드, 스프링 빈 또는 정적 메소드를 호출 할 수 있습니다.

    종료 상태의 태그를 '결정 - 상태'의 끝에 추가하고 클래스 패스에있는 모든 서비스 메소드, 스프링 빈 또는 정적 메소드를 호출 할 수 있습니다.

    시도해보십시오 (테스트되지 않음).

    <decision-state id="checkPermissin">    
        <if test="requestParameters.canApprove" then="approve" else="warning" />
       <on-exit>
            <evaluate expression="T(org.apache.log4j.Logger).getLogger('someLogger').info(requestParameters.canApprove)"/>
       </on-exit>
    </decision-state>
    

    위의 해결책은 당신이 요구하는 것을 수행하기위한 해킹 이상의 것입니다. 이것을 기록하는 "적절한"방법은 FlowExecutionListenerAdapter를 확장하고 현재 흐름 + 결정 상태 ID "checkPermissin"을 수신 한 다음 해당 흐름에 대해 원하는대로 기록하지만 flow.xml 파일 외부에 더 많은 설정 / 코딩이 필요합니다 . (참고 자료 : Spring webflow에서 "dead"세션 잡기 : 예외를 잡는 예제이지만 흐름에서 아무 것도 로깅하는 데 쉽게 적용 할 수있다)

  2. from https://stackoverflow.com/questions/30223805/printing-log-from-flow-xml by cc-by-sa and MIT license