Aktywne Wpisy

dracar +35

MrBeast +12
Dobra, który influencer jako pierwszy się wyhuśta?
Nie wierzę że któryś o tym nie myśli i któryś w końcu złapie odwagę i to zrobi XD
Ale coś czuję że jeszcze największa aferka przed nami.
Wyciekną takie nagrania że to co widzimy teraz to nic.
#famemma #youtube #polskiyoutube
Nie wierzę że któryś o tym nie myśli i któryś w końcu złapie odwagę i to zrobi XD
Ale coś czuję że jeszcze największa aferka przed nami.
Wyciekną takie nagrania że to co widzimy teraz to nic.
#famemma #youtube #polskiyoutube




Mam bean cdPlayer, który ma Autowired interfejs CompactDisc z metodami play() oraz playTrack(int number). cdPlayer ma metodę playCD(), który wywołuję metodę play() w CompactDisc. Ostatnim ważnym szczegółem jest fakt, że moja implementacja CompactDisc, której używam wszędzie, w metodzie play() wywołuje na każdym utworze dziedziczoną po CompactDisc playTrack(int number).
Problem i pytanie:
Zrobiłem test, wczytałem konfiguracje, w których zadeklarowałem, aby przed play() oraz playTrack(int number) w CompactDisc wykonywało się jakieś logowanie. Test ma Autowired cdPlayer, całość sprowadza się do wywołania na nim cdPlayer.playCD(). Dlaczego w logach widoczne jest wywołanie tylko metody play(), a nie widać poszczególnych playTrack, które są wywoływane wewnątrz play()? W przypadku bezpośredniego wywołania na CompactDisc metody playTrack(int number) aspekt jest wywoływany.
https://stackoverflow.com/questions/13564627/spring-aop-not-working-for-method-call-inside-another-method
Spring pakuje interfejsy we własne wrappery na podstawie tego co jest zadeklarowane - nie wie, ze implementacja 1 wywołuje 2. Work around - ponoć rozbić to na osobne beany lub użyć innego frameworka niż wbudowany do aop. Dzięki za bycie gumową kaczką.
Chyba chodzi o to - jesli metoda nie jest wywolywana poprzez interfejs (pod ktory Spring wstrzykuje proxy), to AOP nie bedzie dzialac (zakladajac, ze nie uzywasz zadnego bytecode weavera).
1. Wplesc aspekty wczesniej niz w runtime (np. juz przy kompilacji).
2. We wlasnej implementacji nie uzywac dziedziczenia, tylko delegacji do autowire'owanego pola, ale to raczej slaby design, jezeli AOP jest jedynym powodem ku temu.
3. Zmienic architekture tak, zeby standardowe zachowanie Springa wystarczalo (✌ ゚ ∀ ゚)☞