В моем проекте Spring Boot у меня есть AddressRepository, который приносит все адреса из базы данных.У меня есть класс Aspect и выражение pointcut, которое выполняется после вызова метода findAll()
.Когда я выполняю свой тестовый пример, Совет не запускается, и другие методы, такие как findAll(Sort sort)
, findAll(Pageable pageable)
, работают просто отлично.Я не уверен, что это ошибка Spring Boot или мое выражение.Я пытался использовать Spring Boot 2.0.5 и 2.1.0, но, похоже, ничего не решило мою проблему
AddressLogging.java
@Aspect
@Configuration
public class AddressLogging {
private Logger log=LoggerFactory.getLogger(AddressLogging.class);
//@Pointcut("execution(* com.springtesting.repo.AddressRepository.*(..))")
@Pointcut("execution(* com.springtesting.repo.AddressRepository.findAll())")
public void getAddresses() {}
@After("getAddresses()")
public void afterAdvice() {
log.error("Log Message: Inside afterAdvice() advice");
}
}
AopTest.java
@RunWith(SpringRunner.class)
@SpringBootTest
public class AopTest {
@Autowired
private AddressRepository addressRepository;
@Test
public void getAddresses() {
//addressRepository.findAll(PageRequest.of(0,20, Sort.by("id")));
addressRepository.findAll();
}
@Test
public void findAddressById() {
addressRepository.findById(1L);
}
}
AddressRepository
public interface AddressRepository extends JpaRepository<Address,Long> {}