Spring AOP с автоматическим подключением Объекты обнуляются во время выполнения

Я пытаюсь распечатать записи входа и выхода для всех методов в проекте, используя AOP. После включения AOP бины @Autowired в нескольких классах становятся нулевыми и, таким образом, приводят к исключению NullPointerException.

AOPConfig

@Aspect
@Configuration
public class SpringAOPConfig {


    @Before("execution(* org.abc..*(..)) && !execution(* org.abc.dao..*(..)) && !execution(* org.abc.delegete.dto..*(..))")
    public void logMethodEntry(JoinPoint joinPoint) {
        //entry logger
    }

    @After("execution(* org.abc..*(..)) && !execution(* org.abc.dao..*(..)) && !execution(* org.abc.delegete.dto..*(..))")
    public void logMethodExit(JoinPoint joinPoint) {
        // exit logger
    }
}

Spring Config

@Configuration
@EnableWebMvc
@EnableAsync
@ComponentScan({"org.abc.*"})
@PropertySource("classpath:application.properties")
@EnableAspectJAutoProxy(proxyTargetClass = true)
public class SpringConfig implements WebMvcConfigurer,ApplicationContextAware {
....
}

контроллер

package org.abc.web.controller.producer;

@RestController
@RequestMapping(value = "/api/v1/producer/admin")
public class ABCRestController {

    @Autowired
    ServiceMapper serviceMapper;
    ....
    ....
}

Здесь я считаю, что serviceMapper имеет значение null. Объект становится автоматически подключенным без AOP. Я попробовал автоматическую разводку с использованием методов установки, и я мог назначить прокси-объект CGLIB переменной во время инициализации, но во время выполнения переменная становится нулевой, а метод установки не вызывается между ними.

0 ответов

Обнародование всех методов и класса решило проблему автоматического подключения.

Другие вопросы по тегам