Пользовательская аннотация
@Target({ElementType.METHOD,ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface BufferWriter {
}
Аспект
@Aspect
@Configuration
public class BufferWriterAspect {
@AfterReturning(value = "@annotation(bufferWrite)", returning = "data")
public void process(BufferWrite bufferWrite, Object data){
System.out.println(data);
}
}
Репозиторий Я поместил аннотацию в jpaРепозиторий как следует
@Repository
public interface TestRepository extends JpaRepository<TestModel, Long> {
@Override
@BufferWriter
<S extends TestModel> S save(S entity);
}
Проблема в том, что он не работает!
, но когда я добавляю аннотацию к сервису (как следует), он работает нормально.
Сервисный интерфейс
public interface TestService {
TestModel save(TestModel testModel);
}
Сервисный интерфейс Impl
@Service
public class TestServiceImpl implements TestService {
private @Autowired TestRepository repository;
@Override
@Transactional
@BufferWrite
public TestModel save(TestModel testModel) {
return repository.save(testModel);
}
}