В настоящее время у меня есть следующая настройка (чтобы она была маленькой, я не публиковал все аннотации):
public class MessageRestService {
private MessageService messageService;
MessageRestService(MessageService messageService) {
this.messageService = messageService;
}
@GetMapping
public Response getAllMessages() {
return messageService.getAllMessages();
}
}
public interface MessageService {
String getAllMessages();
}
public class MessageServiceImpl implements MessageService {
@Override
public String getAllMessages() {
...
return messageDao.getAllMessages();
}
}
Теперь я пытаюсь добавить класс декоратора в эту реализацию, где перед вызовом дополнительные что-то может быть сделано (например, проверка доступа или регистрация, ...).
Поэтому я попытался создать класс декоратора, который может делать f.ex. ведение журнала перед вызовом фактической реализации.
@Singleton
public class MessageDecorator implements MessageService {
@Inject
private final MessageService messageService;
@Override
public String getAllMessages() {
// here we can log
return messageService.getAllMessages();
}
}
Проект компилируется без проблем, но при вызове метода getAllMessages () декоратор не вызывается, процесс (работает), как раньше, но без что-то регистрировать.
Честно говоря, я застрял, я видел один рабочий пример этого, но я уже не помню точно, что отличалось от моего подхода или где я допустил ошибку / забыл что-то изменить.