Я использую aspectj и spring boot. Я пытаюсь зарегистрировать сообщение, когда вызывается метод (логическое значение). аспекты работы в целом, но мое выражение для ловли должно быть неправильноAspectJ Spring Метод улавливания лотков с логическим параметром
он работает с (но причины ловя каждый метод):
@Before("execution(* de.fhb..*(..))")
также работает (ловить только с одним параметром)
@Before("execution(* de.fhb..*(*))")
теперь проблема:
@Before("execution(* de.fhb..*(boolean))")
о r
@Before("execution(* de.fhb..*(java.lang.Boolean))")
не работает. Любая помощь? Ошибка должна быть между исполнением (* de.fhb .. * ((моя ошибка я думаю))
здесь мои файлы (геттер & & сеттер генерируются с Ломбок):
POJO:
package de.fhb.showcase;
@Getter @Setter
public class Show {
private String name;
private boolean live;
public void makeShowLive(boolean value) {
live = value;
}
}
аспект:
package de.fhb.aop;
import javax.inject.Named;
import lombok.extern.java.Log;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
@Aspect
@Named
@Log
public class CleanCodeAspect {
@Before("execution(* de.fhb..*(..))")
public void checkStyleBooleanParameter() {
log.warning("You used a method with only one boolean parameter. "
+ "Refactor it into 2 methods with True, False at the end.");
}
}
Попробуйте 'java.lang.boolean'. Я также сомневаюсь, что создание методов, подобных 'setLiveTrue()' или 'setLiveFalse()', является чистым кодом. Он должен быть более функциональным, например 'enable()'/'disable()' или 'show()'/'hide()'. Но это может быть только я. –
java.lang.boolean дает мне эту ошибку: предупреждение не соответствует имени этого типа: java.lang.boolean [Xlint: invalidAbsoluteTypeName] at org.aspectj.weaver.tools.PointcutParser.parsePointcutExpression и с чистым кодом, который я получил эта идея из http://www.planetgeek.ch/wp-content/uploads/2013/06/Clean-Code-V2.1.pdf (аргументы Selector/Flag) - это всего лишь простой пример (не стандартное ведение журнала, отслеживание времени). но thx для вашего совета – svenhornberg