public class UserService {
private UserRepository userRepository;
@Inject
public void setUserRepository(UserRepository userRepository) {
this.userRepository = userRepository;
}
@Loggable
public void saveUser(User user) {
userRepository.save(user);
}
}
public class LogAspect {
@Before("execution(* com.example.UserService.saveUser(..))")
public void beforeSaveUser() {
System.out.println("Before saveUser method...");
}
@After("execution(* com.example.UserService.saveUser(..))")
public void afterSaveUser() {
System.out.println("After saveUser method...");
}
}
public class Application {
public static void main(String[] args) {
UserService userService = Voodoo.getBean(UserService.class);
userService.saveUser(new User("Alice", 20));
}
}