Aop @aspept не запускается в @springboottestJAVA

Программисты JAVA общаются здесь
Anonymous
Aop @aspept не запускается в @springboottest

Сообщение Anonymous »

Я использую Spring-Boot 3.4.2.
Я хочу использовать аспекты AOP, чтобы изменить аннотации, которые я использую в тесте Spring Boot. < Br /> Однако мой метод @Around не запускается во время выполнения теста.
Если я аннотирую, например, Метод конечной точки внутри контроллера REST, чем он запускается. Но я хочу использовать его для тестов. < /P>
Вот моя аннотация: < /p>

Код: Выделить всё

@Target({ ElementType.METHOD, ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
public @interface TestAnnotation {
}
< /code>
Вот мой аспект: < /p>
@Aspect
@Component
public class TestAspect {
public TestAspect() {
// this is called - so @Component works
System.out.println("aspect constructor called");
}

@Around("@annotation(TestAnnotation)")
public Object aroundAdvice(ProceedingJoinPoint joinPoint) throws Throwable {
// this is NOT called in the test - @Around did not work
System.out.println("aroundAdvice() called");
return joinPoint.proceed();
}
}
< /code>
И вот мой тест: < /p>
@SpringBootTest
@ComponentScan(basePackages = { "de.mycompany" }) // root of all my packages
@TestPropertySource(value = "classpath:application-test.yml", factory = YamlPropertySourceFactory.class)
@AutoConfigureMockMvc
class MyTestClass {

@Autowired
private MockMvc mockMvc;

@Test
@TestAnnotation
void testSomething() throws Exception {
System.out.println("testSomething() called.");
// test something with mockMvc
}
}
< /code>
Если я аннотирую конечную точку в RestController, astreadvice () < /code> будет запускается, когда эта конечная точка вызывается или проверяется. Когда мой метод испытаний (здесь: testSomeMehing () 
) вызывается. И это не работает. < /P>
Использование полностью квалифицированного класса в @Around < /code> тоже не работает:

Код: Выделить всё

@Around("@annotation(de.mycompany.annotation.TestAnnotation)")


Подробнее здесь: https://stackoverflow.com/questions/794 ... ngboottest

Вернуться в «JAVA»