Почему не вызывается метод класса AspectBuilder

В main.java создается объект класса Phone, нажатия кнопок (ответ на звонок, сброс звонка) обрабатываются состояниями - States. Применен паттерн Состояние. Пробовал в execution писать вызовы методов Phone - работает, но на State и его дочерние классы нет.

Phone.java

package com.phone;

import org.springframework.stereotype.Component;
import com.state.State;
import com.state.States.*;

@Component
public class Phone {

    private State state;

    private String number;
    private float balance;

    String call() {
        return state.call();
    }

    // Some other methods

}

AspectBuilder.java

package com.AOP;

@Component
@Aspect
@EnableAspectJAutoProxy
public class AspectBuilder{

    @Before("execution(* com.state.States.*.*())")
    public void AspectBefore(JoinPoint jp){
        System.out.println("LOGGER: " + jp.getSignature());
    }
}

State.java

package com.state;

import ...


@Component
public abstract class State {

    public Phone phone;

    public State(Phone phone) {
        this.phone = phone;
    }

    public abstract boolean callable();

    public abstract String clickAnswer();

    public abstract String clickEnd();

    public abstract String call();
}

WaitingState.java

package com.state.States;

import ...

@Component
public class WaitingState extends State {

    public WaitingState(Phone phone) {
        super(phone);
    }

    @Override
    public String call() {
        if (phone.getBalance() > 0) {
            phone.changeState(new CallingState(phone));
            return this.getClass().getName() + " -> call" + " -> CallingState";
        } else {
            phone.changeState(new BlockedState(phone));
            return this.getClass().getName() + " -> call" + " -> BlockedState";
        }
    }

    // Some other methods

}

Ответы (1 шт):

Автор решения: polySladkiy

Дело в том, что состояния создаются на старом POJO стиле, а в Spring необходимо создавать их через context, те необходимо пересмотреть подход к решению, чтобы они создавались через context.

→ Ссылка