ส่วนหัวไดนามิกการรวมสปริง

ในคำขอ Http ของ Spring-integration ที่อิงตามผู้ใช้ที่เข้าสู่ระบบต้องการเพิ่มส่วนหัวแบบไดนามิก param.say เช่นหากผู้ใช้ "A" เข้าสู่ระบบ & คำขอ hitHttp ตอนนี้จำเป็นต้องเพิ่มส่วนหัวเพิ่มเติมแบบไดนามิก 1 รายการ สำหรับผู้ใช้รายอื่นก็ควรแม้แต่คีย์ เช่นกัน (เช่นมีค่าเป็นโมฆะ)

สำหรับผู้ใช้

<int:gateway id="requestGateway" service-interface="net.group.gateway.Gateway"  default-request-channel="jsonTransformationChannel">
            <int:default-header name="X-MW-LOGGEDID" expression="@requestData.getLoggedID()" />
            <int:default-header name="X-Srcvalue" value="56789" />
            <int:default-header name="content-type" value="application/json" />
            <int:default-header name="Accept" value="application/json" />
</int:gateway>

สำหรับผู้ใช้รายอื่น

<int:gateway id="requestGateway" service-interface="net.group.gateway.Gateway"  default-request-channel="jsonTransformationChannel">
            <int:default-header name="X-MW-LOGGEDID" expression="@requestData.getLoggedID()" />
            <int:default-header name="content-type" value="application/json" />
            <int:default-header name="Accept" value="application/json" />
 </int:gateway>

person Doss    schedule 20.03.2018    source แหล่งที่มา


คำตอบ (1)


ฉันเดาว่าเรื่องราวเกี่ยวกับเรื่องนั้นจริงๆ X-Srcvalue และเนื่องจากคุณบอกว่าสามารถใช้ null สำหรับคนอื่นๆ ได้ จึงควรใช้ expression แทนค่าจะดีกว่า

<int:default-header name="X-Srcvalue" expression="USER == A ? 56789 : null" />

ในนิพจน์ คุณสามารถใช้ bean ใดก็ได้ในบริบทของแอปพลิเคชันเพื่อดำเนินการตรรกะที่ซับซ้อนใดๆ

person Artem Bilan    schedule 20.03.2018
comment
ปัญหาของฉัน หากผู้ใช้รายอื่นเข้าสู่ระบบ ไม่ควรแสดงคีย์ X-Srcvalue ใต้ส่วนหัว สำหรับผู้ใช้ไม่ใช่ prblm - person Doss; 21.03.2018
comment
ประเด็นก็คือถ้าค่าของส่วนหัวที่จะแมปเป็น null มันจะไม่ถูกนำเสนอในข้อความเอาท์พุต ดู MessageHeaderAccessor.setHeader() การใช้งาน - person Artem Bilan; 21.03.2018