Я делаю первые шаги в Springs AOP и хотел начать с простого совета по ведению журнала. Мой проект представляет собой многомодульный проект maven со следующей структурой:
parentProject
| __aop
| __data
| __Web
Веб-модуль имеет класс обслуживания пользователя в пакете de.my.awsome.project.web.service с методом saveNewUser:
@Service
public class UserService {
...
public MdUser saveNewUser(UserModel user) {
MdUser newUser = this.save(user);
createGroupMembership(user, newUser);
return newUser;
}
}
Метод работает, как и ожидалось, поэтому не беспокойтесь о деталях.
Теперь я создал следующий класс в модуле aop:
@Component
@Aspect
public class LoggingAspect {
Logger logger = Logger.getLogger(getClass());
@Before("execution(public * de.my.awsome.project.web.service.UserService.saveNewUser(..))")
public void newUserLog(JoinPoint joinpoint) {
logger.info(joinpoint.getSignature() + " with user " + joinpoint.getArgs()[0]);
}
}
Я добавил зависимость для веб-модуля в pom модуля aop:
<dependency>
<groupId>de.my.awsome.project</groupId>
<artifactId>web</artifactId>
<version>${project.version}</version>
</dependency>
Я даже написал ConfigurationClasse, хотя думал, что в SpringBoot этого не будет необходимости:
@Configuration
@ComponentScan(basePackages="de.fraport.bvd.mobisl.aop")
public class AspectsConfig {
}
Ожидаемый результат - лог-сообщение типа «saveNewUser with user xyz». Но метод регистрации никогда не вызывается. Что я пропустил?