У меня есть 2 класса для обслуживания.Класс BaseService и класс ServerStatusService, который расширяет первый.Я пытаюсь добавить аспекты, чтобы иметь возможность добавить дополнительную логику с пользовательской аннотацией.
Сначала я попробовал метод в классе ServerStatusServiceImpl, и он работал нормально, но когда я попытался добавить его в метод вкласс BaseService, который вызывается из другого класса, для которого не удается загрузить контекст.
Нет подходящего компонента типа "... ServerStatusServiceImpl 'доступен
Любые мысли о том, что может произойти, когда япереместить аннотацию внутри базового класса?
@Service
public class BaseService {
@Annotated
String baseMethod(){
return "";
}
}
@Service
public class ServerStatusServiceImpl implements ServerStatusService extends BaseService {
public ServerStatusServiceImpl(){
super();
}
String serverStatusMethod() {
return baseMethod();
}
}
@Aspect
@Component
public class MyAspect {
@Before("@annotation(....Annotated)")
public void myAdvice(JoinPoint joinPoint) {
System.out.println("Logging to console");
}
}
@ComponentScan
@Configuration
@EnableAspectJAutoProxy
public class LibraryConfig {
@Bean
public ServerStatusServiceImpl serverStatusService(){
return new ServerStatusServiceImpl();
}
@Bean
public MyAspect myAspect() {
return new MyAspect();
}
}
public static void main(String[] args) {
ApplicationContext ctx = new
AnnotationConfigApplicationContext(MyConfig.class);
ServerStatusServiceImpl sts =
ctx.getBean(ServerStatusServiceImpl.class);
}