Конструктор без аргументов не хочет, чтобы вы добавляли в него @Autowired, поскольку вы ничего не вводите в его аргументы (так как их нет). Однако @Autowired требуется для конструктора с аргументами.
@ Аннотация компонента над классом создаст ваш компонент с помощью вызова конструктора по умолчанию, и вы можете использовать его где угодно, но вам нужно убедиться, что вы ничего не вызываете в fortuneservice, так как это приведет к исключению null ptr, если только вы инициализировать это. Напротив, если вы помещаете аннотацию @Autowired поверх конструктора с аргументом, и он работает нормально, это означает, что bean-компонент fortuneservice, который вы объявили в другом месте, теперь будет внедрен внутри этого класса, и не будет исключение null ptr, если вы вызываете какой-то метод в что.