🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.java
8 messages
8 total messages Started by Piotr Rezmer Fri, 18 Jan 2013 21:31
ręczny interceptor (ale bez springa)
#153758
Author: Piotr Rezmer
Date: Fri, 18 Jan 2013 21:31
16 lines
1401 bytes
Witam

Chciałbym udekorować wywołania interfejsu w celu obsługi failover. Do 
tej pory robiłem to za pomocą springowego aspectu (MethodInterceptor). 
Teraz chciałbym to samo zrobić bez springowego frameworku. Czy da się to 
jakoś sensownie zrobić za pomocą refleksji? Wiem że są np:

getClass().getMethod( String methodName)

Problem pojawia się w kwestii parametrów metody. Każda z metod używa 
innej liczby parametrów. Czy da się to jakoś globalnie ogarnąć?

-- 
pozdrawiam
Piotr
XLR250&bmw_f650_dakar
Re: ręczny interceptor (ale bez springa)
#153759
Author: Bogusław Szczepanowski
Date: Sat, 19 Jan 2013 18:30
20 lines
1583 bytes
Dnia 18-01-2013 o 22:31:04 Piotr Rezmer <p.r@bezbzdur.pl> napisał(a):

> Witam
>
> Chciałbym udekorować wywołania interfejsu w celu obsługi failover. Do  
> tej pory robiłem to za pomocą springowego aspectu (MethodInterceptor).  
> Teraz chciałbym to samo zrobić bez springowego frameworku. Czy da się to  
> jakoś sensownie zrobić za pomocą refleksji? Wiem że są np:
>
> getClass().getMethod( String methodName)
>
> Problem pojawia się w kwestii parametrów metody. Każda z metod używa  
> innej liczby parametrów. Czy da się to jakoś globalnie ogarnąć?

Najbardziej niskopoziomowe rozwiązanie to dynamic proxy ->  
java.lang.reflect.Proxy

-- 
Boguś
/Każdy skutek ma swoją przyczynę/
Re: ręczny interceptor (ale bez springa)
#153760
Author: Marcin Biegan
Date: Sat, 19 Jan 2013 19:15
22 lines
1992 bytes
On 2013-01-19 19:30, Bogusław Szczepanowski wrote:
> Dnia 18-01-2013 o 22:31:04 Piotr Rezmer <p.r@bezbzdur.pl> napisał(a):
>
>> Witam
>>
>> Chciałbym udekorować wywołania interfejsu w celu obsługi failover. Do
>> tej pory robiłem to za pomocą springowego aspectu (MethodInterceptor).
>> Teraz chciałbym to samo zrobić bez springowego frameworku. Czy da się to
>> jakoś sensownie zrobić za pomocą refleksji? Wiem że są np:
>>
>> getClass().getMethod( String methodName)
>>
>> Problem pojawia się w kwestii parametrów metody. Każda z metod używa
>> innej liczby parametrów. Czy da się to jakoś globalnie ogarnąć?
>
> Najbardziej niskopoziomowe rozwiązanie to dynamic proxy ->
> java.lang.reflect.Proxy

Bardziej niskopoziomowe rozwiazanie to pakiet java.lang.instrument

-- 
MB
Re: ręczny interceptor (ale bez springa)
#153761
Author: Bogusław Szczepanowski
Date: Sun, 20 Jan 2013 21:14
14 lines
1333 bytes
Dnia 19-01-2013 o 20:15:47 Marcin Biegan <aragon@usunto.lama.net.pl>  
napisał(a):

>> Najbardziej niskopoziomowe rozwiązanie to dynamic proxy ->
>> java.lang.reflect.Proxy
>
> Bardziej niskopoziomowe rozwiazanie to pakiet java.lang.instrument

No tak, to prawda, chociaż jeszcze nigdy nie widziałem go w zastosowaniach  
"produkcyjnych".

-- 
Boguś
/Każdy skutek ma swoją przyczynę/
Re: ręczny interceptor (ale bez springa)
#153762
Author: waldek.kot
Date: Mon, 21 Jan 2013 00:56
9 lines
1756 bytes
W dniu piątek, 18 stycznia 2013 22:31:04 UTC+1 użytkownik Piotr Rezmer napisał:
> Chciałbym udekorować wywołania interfejsu w celu obsługi failover. Do 
> tej pory robiłem to za pomocą springowego aspectu (MethodInterceptor). 
> Teraz chciałbym to samo zrobić bez springowego frameworku. 

A za pomocą samego AspectJ (lub innej biblioteki AOP) możesz czy koniecznie chcesz to zrobić na "czystym" JRE ?

Pozdrawiam,
Waldek Kot
Re: ręczny interceptor (ale bez springa)
#153763
Author: Piotr Rezmer
Date: Mon, 21 Jan 2013 08:45
16 lines
1711 bytes
waldek.kot@gmail.com pisze:
> W dniu piątek, 18 stycznia 2013 22:31:04 UTC+1 użytkownik Piotr Rezmer napisał:
>> Chciałbym udekorować wywołania interfejsu w celu obsługi failover. Do
>> tej pory robiłem to za pomocą springowego aspectu (MethodInterceptor).
>> Teraz chciałbym to samo zrobić bez springowego frameworku.
>
> A za pomocą samego AspectJ (lub innej biblioteki AOP) możesz czy koniecznie chcesz to zrobić na "czystym" JRE ?

Jeśli uda mi się to zaimplementować w 20-30 liniach kodu, to wolałbym 
bez AOP. Jeśli okaże się że trzeba więcej, trudno - dodam zależność.


-- 
pozdrawiam
Piotr
XLR250&bmw_f650_dakar
Re: ręczny interceptor (ale bez springa)
#153764
Author: William Bonawentura
Date: Mon, 21 Jan 2013 10:24
5 lines
1581 bytes
> innej liczby parametrów. Czy da się to jakoś globalnie ogarnąć?

Tak jak już koledzy napisali można to łatwo osiągnąć fabryką dynamic Proxy i odpowiednim Invokerem. Zwróć uwagę, by przekazując 
listę interfejsów jakie ma implementować Proxy, nie podawać tylko interfejsu spodziewanego, ale również wszystkie rzeczywiście 
implementowane przez opakowywany obiekt typy. Bez tego zawiedzie stosowane gdzieś "dalej" w kodzie instanceof i rzutowania. 
Re: ręczny interceptor (ale bez springa)
#153765
Author: Piotr Rezmer
Date: Sat, 02 Feb 2013 15:49
14 lines
1470 bytes
William Bonawentura pisze:

> Proxy i odpowiednim Invokerem. Zwróć uwagę, by przekazując listę
> interfejsów jakie ma implementować Proxy, nie podawać tylko interfejsu
> spodziewanego, ale również wszystkie rzeczywiście implementowane przez
> opakowywany obiekt typy.
Dzięki. Akurat planuję przechwytywać wywołania interfejsu soapowego, 
zatem pracuję tylko na jednym typie.


-- 
pozdrawiam
Piotr
XLR250&bmw_f650_dakar
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads