Давайте возьмем пример простой программы Spring загрузки:Как Spring Boot распознает @Scheduled по методу подкласса?
Application.java
@SpringBootApplication
@EnableScheduling
public class Application {
public static void main(String[] args) throws Exception {
SpringApplication.run(Application.class);
}
}
SuperClass.java
public abstract class SuperClass {
@Scheduled(fixedRate = 5000)
public void printSomething() {
System.out.println("this is the super method");
}
}
SubClass.java
@Component
public class SubClass extends SuperClass {
}
Согласно this ответ, только аннотации, аннотированные @Inherited
наследуются подклассами, а @Scheduled не имеет такой аннотации. Так почему это работает?
Я вижу. Поэтому в ответе, с которым я связан, метод foo() не был вызван, потому что он переопределил метод super. Спасибо за разъяснения. – Ozilophile