Returning Mono from @Around method of aspect The 2019 Stack Overflow Developer Survey Results Are InSpring, Aspect J, multiple AfterThrowing advice applied to the same pointcutSpring Aspect fails when join point is invoked in new threadSpring AOP: @AfterThrowing execution pointcut never matchesSpring: cannot inject a mock into class annotated with the @Aspect annotationHow exactly does an @Around advice work in Spring AOP?Spring AOP pointcut by declared return typeHow to log exception details in Spring AOP with try with empty catch block?How to register or provide pointcuts on the fly to an AspectWildcard support on package name in Spring AOP pointcut expressionSpring AOP using @around throws org.springframework.beans.factory.BeanCreationException when I start the application

How do PCB vias affect signal quality?

Why don't hard Brexiteers insist on a hard border to prevent illegal immigration after Brexit?

RequirePermission not working

Can withdrawing asylum be illegal?

How to quickly solve partial fractions equation?

Why not take a picture of a closer black hole?

If I score a critical hit on an 18 or higher, what are my chances of getting a critical hit if I roll 3d20?

Old scifi movie from the 50s or 60s with men in solid red uniforms who interrogate a spy from the past

Mathematics of imaging the black hole

For what reasons would an animal species NOT cross a *horizontal* land bridge?

How to type this arrow in math mode?

Can there be female White Walkers?

Output the Arecibo Message

What force causes entropy to increase?

How to translate "being like"?

The phrase "to the numbers born"?

Geography at the pixel level

Getting crown tickets for Statue of Liberty

How did passengers keep warm on sail ships?

How come people say “Would of”?

Likelihood that a superbug or lethal virus could come from a landfill

Is bread bad for ducks?

Can we generate random numbers using irrational numbers like π and e?

Loose spokes after only a few rides



Returning Mono from @Around method of aspect



The 2019 Stack Overflow Developer Survey Results Are InSpring, Aspect J, multiple AfterThrowing advice applied to the same pointcutSpring Aspect fails when join point is invoked in new threadSpring AOP: @AfterThrowing execution pointcut never matchesSpring: cannot inject a mock into class annotated with the @Aspect annotationHow exactly does an @Around advice work in Spring AOP?Spring AOP pointcut by declared return typeHow to log exception details in Spring AOP with try with empty catch block?How to register or provide pointcuts on the fly to an AspectWildcard support on package name in Spring AOP pointcut expressionSpring AOP using @around throws org.springframework.beans.factory.BeanCreationException when I start the application



.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;








0















I am using Spring AOP for profiling method execution time. My methods uses Spring WebFlux and returns a Mono of various types viz. Map, List , custom objects of Java classes. But jointPoint.proceed() in @Around advice returns object. How can I return the same Mono from doAround method.
The method whose execution time I want to know is as follows :



public Mono<Map<Integer, Car>> getCarObject(List<Integer> cardIds) cardIds.isEmpty()) 
return Mono.fromCallable(() -> new HashMap<>());


return Mono.fromCallable(() -> listingClient.getCarObject(carIds).getData());



My aspect class is as follows :



@Aspect
@Configuration
public class Demo

private Logger logger = LoggerFactory.getLogger(this.getClass());

@Pointcut("execution(* com.Car.*.mediators.*.*(..))")
public void feignClientPointcut()


@Around("feignClientPointcut()")
public void doAround(ProceedingJoinPoint joinPoint) throws Throwable

long start = System.currentTimeMillis();

Object object = joinPoint.proceed();
long end = System.currentTimeMillis();

long time = end - start;
logger.error("Around Method Name = ",joinPoint.getSignature().getName());
logger.error("Around time :",time);






How can I return the same Mono from doAround method. Because on returning Mono<object> the caller function of method throws an error as it expects a Map not a object ?










share|improve this question
























  • Can you share the exception stack trace?

    – Bond - Java Bond
    Mar 18 at 12:10

















0















I am using Spring AOP for profiling method execution time. My methods uses Spring WebFlux and returns a Mono of various types viz. Map, List , custom objects of Java classes. But jointPoint.proceed() in @Around advice returns object. How can I return the same Mono from doAround method.
The method whose execution time I want to know is as follows :



public Mono<Map<Integer, Car>> getCarObject(List<Integer> cardIds) cardIds.isEmpty()) 
return Mono.fromCallable(() -> new HashMap<>());


return Mono.fromCallable(() -> listingClient.getCarObject(carIds).getData());



My aspect class is as follows :



@Aspect
@Configuration
public class Demo

private Logger logger = LoggerFactory.getLogger(this.getClass());

@Pointcut("execution(* com.Car.*.mediators.*.*(..))")
public void feignClientPointcut()


@Around("feignClientPointcut()")
public void doAround(ProceedingJoinPoint joinPoint) throws Throwable

long start = System.currentTimeMillis();

Object object = joinPoint.proceed();
long end = System.currentTimeMillis();

long time = end - start;
logger.error("Around Method Name = ",joinPoint.getSignature().getName());
logger.error("Around time :",time);






How can I return the same Mono from doAround method. Because on returning Mono<object> the caller function of method throws an error as it expects a Map not a object ?










share|improve this question
























  • Can you share the exception stack trace?

    – Bond - Java Bond
    Mar 18 at 12:10













0












0








0








I am using Spring AOP for profiling method execution time. My methods uses Spring WebFlux and returns a Mono of various types viz. Map, List , custom objects of Java classes. But jointPoint.proceed() in @Around advice returns object. How can I return the same Mono from doAround method.
The method whose execution time I want to know is as follows :



public Mono<Map<Integer, Car>> getCarObject(List<Integer> cardIds) cardIds.isEmpty()) 
return Mono.fromCallable(() -> new HashMap<>());


return Mono.fromCallable(() -> listingClient.getCarObject(carIds).getData());



My aspect class is as follows :



@Aspect
@Configuration
public class Demo

private Logger logger = LoggerFactory.getLogger(this.getClass());

@Pointcut("execution(* com.Car.*.mediators.*.*(..))")
public void feignClientPointcut()


@Around("feignClientPointcut()")
public void doAround(ProceedingJoinPoint joinPoint) throws Throwable

long start = System.currentTimeMillis();

Object object = joinPoint.proceed();
long end = System.currentTimeMillis();

long time = end - start;
logger.error("Around Method Name = ",joinPoint.getSignature().getName());
logger.error("Around time :",time);






How can I return the same Mono from doAround method. Because on returning Mono<object> the caller function of method throws an error as it expects a Map not a object ?










share|improve this question
















I am using Spring AOP for profiling method execution time. My methods uses Spring WebFlux and returns a Mono of various types viz. Map, List , custom objects of Java classes. But jointPoint.proceed() in @Around advice returns object. How can I return the same Mono from doAround method.
The method whose execution time I want to know is as follows :



public Mono<Map<Integer, Car>> getCarObject(List<Integer> cardIds) cardIds.isEmpty()) 
return Mono.fromCallable(() -> new HashMap<>());


return Mono.fromCallable(() -> listingClient.getCarObject(carIds).getData());



My aspect class is as follows :



@Aspect
@Configuration
public class Demo

private Logger logger = LoggerFactory.getLogger(this.getClass());

@Pointcut("execution(* com.Car.*.mediators.*.*(..))")
public void feignClientPointcut()


@Around("feignClientPointcut()")
public void doAround(ProceedingJoinPoint joinPoint) throws Throwable

long start = System.currentTimeMillis();

Object object = joinPoint.proceed();
long end = System.currentTimeMillis();

long time = end - start;
logger.error("Around Method Name = ",joinPoint.getSignature().getName());
logger.error("Around time :",time);






How can I return the same Mono from doAround method. Because on returning Mono<object> the caller function of method throws an error as it expects a Map not a object ?







spring spring-boot spring-aop spring-webflux






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Mar 18 at 12:08









Bond - Java Bond

2,88452239




2,88452239










asked Mar 8 at 11:13









Divyesh SoniDivyesh Soni

11




11












  • Can you share the exception stack trace?

    – Bond - Java Bond
    Mar 18 at 12:10

















  • Can you share the exception stack trace?

    – Bond - Java Bond
    Mar 18 at 12:10
















Can you share the exception stack trace?

– Bond - Java Bond
Mar 18 at 12:10





Can you share the exception stack trace?

– Bond - Java Bond
Mar 18 at 12:10












0






active

oldest

votes












Your Answer






StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");

StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);













draft saved

draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55062049%2freturning-mono-from-around-method-of-aspect%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown

























0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes















draft saved

draft discarded
















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid


  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55062049%2freturning-mono-from-around-method-of-aspect%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Save data to MySQL database using ExtJS and PHP [closed]2019 Community Moderator ElectionHow can I prevent SQL injection in PHP?Which MySQL data type to use for storing boolean valuesPHP: Delete an element from an arrayHow do I connect to a MySQL Database in Python?Should I use the datetime or timestamp data type in MySQL?How to get a list of MySQL user accountsHow Do You Parse and Process HTML/XML in PHP?Reference — What does this symbol mean in PHP?How does PHP 'foreach' actually work?Why shouldn't I use mysql_* functions in PHP?

Compiling GNU Global with universal-ctags support Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern) Data science time! April 2019 and salary with experience The Ask Question Wizard is Live!Tags for Emacs: Relationship between etags, ebrowse, cscope, GNU Global and exuberant ctagsVim and Ctags tips and trickscscope or ctags why choose one over the other?scons and ctagsctags cannot open option file “.ctags”Adding tag scopes in universal-ctagsShould I use Universal-ctags?Universal ctags on WindowsHow do I install GNU Global with universal ctags support using Homebrew?Universal ctags with emacsHow to highlight ctags generated by Universal Ctags in Vim?

Add ONERROR event to image from jsp tldHow to add an image to a JPanel?Saving image from PHP URLHTML img scalingCheck if an image is loaded (no errors) with jQueryHow to force an <img> to take up width, even if the image is not loadedHow do I populate hidden form field with a value set in Spring ControllerStyling Raw elements Generated from JSP tagds with Jquery MobileLimit resizing of images with explicitly set width and height attributeserror TLD use in a jsp fileJsp tld files cannot be resolved