Не удается загрузить контекст Spring после перемещения аннотации в базовый класс - PullRequest
0 голосов
/ 28 января 2019

У меня есть 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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...