0
0
Spring Bootframework~20 mins

@Before advice in Spring Boot - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Spring AOP @Before Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
component_behavior
intermediate
2:00remaining
What happens when a @Before advice is applied in Spring AOP?
Consider a Spring Boot application using AspectJ style @Before advice. What is the behavior of the @Before advice when the target method is called?
Spring Boot
@Aspect
@Component
public class LoggingAspect {
  @Before("execution(* com.example.service.*.*(..))")
  public void logBefore() {
    System.out.println("Method is about to execute");
  }
}
AThe advice runs before the target method executes, printing the message each time the method is called.
BThe advice runs after the target method executes, printing the message only if the method completes successfully.
CThe advice runs only if the target method throws an exception.
DThe advice runs concurrently with the target method, possibly causing race conditions.
Attempts:
2 left
💡 Hint
Think about when @Before advice is triggered in the method call lifecycle.
📝 Syntax
intermediate
2:00remaining
Identify the correct syntax for a @Before advice method in Spring AOP
Which of the following method signatures correctly defines a @Before advice in a Spring Boot Aspect class?
A
@Before
public void beforeMethod() {}
B
@Before("execution(* com.example..*(..))")
public void beforeMethod(String arg) {}
C
@Before("execution(* com.example..*(..))")
public String beforeMethod() { return "ok"; }
D
@Before("execution(* com.example..*(..))")
public void beforeMethod() {}
Attempts:
2 left
💡 Hint
Check the annotation usage and method signature requirements for @Before advice.
🔧 Debug
advanced
2:00remaining
Why does this @Before advice not execute?
Given the following Aspect code, why does the @Before advice never run when calling methods in com.example.service.UserService?
Spring Boot
package com.example.aspect;

import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.springframework.stereotype.Component;

@Aspect
@Component
public class LoggingAspect {

  @Before("execution(* com.example.service.UserService.*(..))")
  public void logBefore() {
    System.out.println("Before method call");
  }
}

// UserService is annotated with @Service and methods are public.
AThe aspect class is missing @EnableAspectJAutoProxy annotation in the Spring configuration.
BThe pointcut expression is incorrect; it should use 'within' instead of 'execution'.
CThe advice method must return a value to execute.
DThe UserService methods are private, so advice cannot be applied.
Attempts:
2 left
💡 Hint
Check if Spring AOP proxying is enabled in the configuration.
state_output
advanced
2:00remaining
What is the output when @Before advice modifies a method argument?
Consider this Aspect and service method. What will be printed when calling process("hello")?
Spring Boot
package com.example.aspect;

import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.springframework.stereotype.Component;

@Aspect
@Component
public class ModifyArgAspect {
  @Before("execution(* com.example.service.MessageService.process(String)) && args(msg)")
  public void beforeProcess(JoinPoint jp, String msg) {
    System.out.println("Before: " + msg);
    msg = msg.toUpperCase();
  }
}

package com.example.service;

public class MessageService {
  public void process(String message) {
    System.out.println("Processing: " + message);
  }
}
A
Before: hello
Processing: HELLO
B
Before: hello
Processing: hello
C
Before: HELLO
Processing: hello
DCompilation error due to argument modification in advice
Attempts:
2 left
💡 Hint
Think about whether changing the parameter inside advice affects the original method argument.
🧠 Conceptual
expert
2:00remaining
Which statement about @Before advice and exceptions is true?
In Spring AOP, what happens if a @Before advice throws an exception during execution?
AThe exception is caught and logged, then the target method executes.
BThe exception is ignored, and the target method executes normally.
CThe target method is not executed, and the exception propagates to the caller.
DThe target method executes first, then the exception is thrown.
Attempts:
2 left
💡 Hint
Consider the order of execution and exception handling in advice.