spring aop pointcuty

0

cześć. spring aop wywołanie metody np.
@Pointcut("execution(Integer BookBusiness.update(..)) && args(book)")

jest możliwe springowymi desygnatorami (czyli np. within, target itd..) dodać ograniczenie skąd zostaje wywołana metoda BookBusiness::save?
np. z konkretnej klasy, klasy w pakiecie albo np. nie z konkretnej klasy ?

np.@Pointcut na wywołanie BookBusiness::save tylko z klasy BookTranslationsService.

nawet z pomocą sobie w tym celu sobie własnymi adnotacjami (czyli desygantory z @costam)

1

?

expression="execution(* jakis.super.fajnypackage.SuperKontroller.*(..)))"

Tu wpinam się w wywołanie jakiejkolwiek metody w kontrolerze:

 <aop:config>
    <aop:config>
        <aop:aspect ref="logger">
            <aop:pointcut id="logger-point" 
                expression="execution(* spring.showcase.form.FrontController.*(..)))"/>
            <aop:after method="logTimeToConsole" pointcut-ref="logger-point" />
        </aop:aspect>
    </aop:config>
0

no dobrze, ale porada z takim pointcutem zadziała Ci zawsze jak zostanie wywołana jakakolwiek
metoda w FrontControllerze (albo SuperKontrollerze) nie patrząc na to co ją wywołało.

mi trzeba ograniczenie, że np.
metoda SuperSerwis::zrobCostam zostało wywołane z klasy SuperKontroller

1

Spring ControlFlow pozwala na takie sztuczki (przy czym daje informacje o klasie wołajacej, ale nie o instancji). I jest to cecha wszystkich APOów opartych o proxy, że nie ma informacji o wywołującym.

ps. zawsze pozostaje analiza stacktrace :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1