ZAWWW-2st1.2-w12.tresc-1.0-Slajd12
Programowanie aspektowe
Drugą, obok wstrzykiwania zależności, podstawową techniką wykorzystywaną w architekturze Spring jest programowanie aspektowe. W tradycyjnym programowaniu moduły kodu odpowiadają mniej więcej modułom wyodrębnianym na podstawie logiki biznesowej. Przykładowo, w aplikacji przedstawionej na slajdzie wyodrębniono trzy moduły biznesowe odpowiadające obsłudze zamówień, obsłudze klienta i obsłudze magazynu. Równolegle z modułami biznesowymi istnieją także zagadnienia (aspekty) obecne w wielu modułach i związane z architekturą i mechaniką aplikacji a nie logiką biznesową. Przykładami takich zagadnień mogą być: zapewnianie bezpieczeństwa i kontroli dostępu do modułów, zapewnianie trwałości obiektom wykorzystywanym przez moduły, zapisywanie zdarzeń pojawiających się w modułach do dziennika aplikacji, obsługa typowych błędów, itp. Każde z tych zagadnień jest oprogramowywane niezależnie w ramach każdego modułu biznesowego. W rezultacie, kod aplikacji zawiera wymieszane ze sobą fragmenty reprezentujące właściwą logikę biznesową i fragmenty reprezentujące owe zagadnienia przekrojowe. Skutkiem tego jest kod nieczytelny, trudny do modyfikacji i pielęgnacji, podatny na błędy.