Saya memiliki aplikasi yang saya kodekan yang saya refactoring untuk memanfaatkan Integrasi Musim Semi dengan lebih baik. Aplikasi memproses isi file.
Masalahnya (menurut saya) adalah implementasi saya saat ini melewati Files
bukannya Messages
, yaitu Integrasi Musim Semi Messages
.
Untuk menghindari pengguliran lebih lanjut kode saya sendiri, yang kemudian harus saya pertahankan nanti, saya bertanya-tanya apakah ada struktur yang disarankan untuk membuat Pesan dalam Integrasi Musim Semi. Yang saya ingin tahu adalah apakah ada kombinasi channel
yang direkomendasikan dengan sesuatu seperti MessageBuilder
yang harus saya gunakan.
Proses/Kode (akhirnya)
Saya belum memiliki kode untuk mengkonfigurasinya tetapi saya ingin menyelesaikan komponen/proses berikut:
- Terima file, hapus header dan footer file, ambil setiap baris dan ubah menjadi
Message<String>
(Sepertinya ini sebenarnyaSplitter
) yang saya kirimkan ke... - Saluran/Titik Akhir mengirimkan pesan ke Router
- Router mendeteksi format String di Payload dan merutekan ke saluran yang sesuai seperti Order Router di sini...
Saluran yang dipilih kemudian membuat jenis Pesan yang sesuai, khususnya pesan yang diketik. Misalnya saya memiliki pembuat berikut untuk membuat Pesan...
kelas publik ShippedBoxMessageBuilder mengimplementasikan CustomMessageBuilder {
@Override pesan publik buildMessage(String input) { ShippedBox ShippedBox = (ShippedBox) ShippedBoxFactory.manufactureShippedFile(input); return MessageBuilder.withPayload(shippedBox).build(); } ...
Pesan dirutekan menurut jenisnya ke saluran pemrosesan yang sesuai
Solusi yang saya maksudkan sepertinya saya telah memperumitnya. Namun, saya sengaja memisahkan dua tugas 1) Memecah file menjadi banyak baris Messages<String>
dan 2) Mengubah Messages<String>
menjadi Messages<someType>
. Karena itu saya rasa saya memerlukan router/Pembuat Pesan tambahan untuk tugas kedua.