У меня есть класс Spring Component следующим образом:
@Component
public class A{
@Value("${some.value}")
private String s;
@PostConstruct
public void setup(){// initialization of private instance variables}
public void execute(){ //code that makes use of the initialized instance variables }
}
У меня есть другой класс, расширяющий A:
@Component
public class B extends A{
@PostConstruct
public void setup{
super.execute();
}
}
Так что теперь я сталкиваюсь с проблемой, когда яЗапустите мое загрузочное приложение Spring, класс B создается перед классом A. В результате A.setup () не создается, что вызывает выброс NPE при вызове super.execute () в B.setup (), так каквсе переменные экземпляра инициализируются в A.setup ().
Чтобы избежать этого, я придумал следующий хак:
@Component
public class B extends A{
@PostConstruct
public void setup{
super.setup();
super.execute();
}
}
Мне было интересно, есть ли способ получитькласс A создан сначала перед классом B, так что я могу избавиться от приведенного выше кода