Добрый день.
Все вышеперечисленное вами составляют базис языка Java. Возможно, что на начальном этапе вам не нужна многопоточность, но в любом случае знание основ java будет не лишним.
но я не знаю такие темы как Аннотации, Коллекции, Обобщения, Многопоточность и т. д.
Аннотации используются во всех современных библиотеках и фреймворках. Нужно знать хотя бы как они работают. В Spring, Hibernate также используются аннотации.
Коллекции (JCF) - как по мне обязательный минимум, который нужно знать. В Spring вам придется работать с коллекциями.
Обобщения (generics) - также достаточно широко используется, в том числе и в Спринг. Например, банальный конвертер (интерфейс
Converter<S, T>
и т.д.).
До изучения Spring я бы рекомендовал вам изучить следующее:
1) основы языка Java (все то, что вы перечислили выше).
2) Ознакомиться с Java EE (сервлеты), глянуть на jdbc
3) Изучить SQL (поиграться чуть с БД - MySQL, PostgreSQL и т.д.)
4) Изучить Hibernate (ORM для работы с БД).
5) Изучить TCP / IP. Изучить http методы (GET, POST, PUT и т.д.). Возможно, ознакомиться с сокетами.
и только потом уже с имеющимися знаниями изучить Spring. При изучении Spring уже можно смотреть в сторону АОП и потихоньку изучить Spring AOP и т.д.
Вот, курс по Spring Framework -
https://www.youtube.com/watch?v=5ePo08sqcpk
Курсов по Spring Boot полно. Есть неплохие на Udemy. Не лишним будет также изучение документации самого фреймворка. Также можете прочитать книгу Spring Boot in Action.
Стоит ли мне учить Spring и доучивать эти темы вместе или сначала учить эти темы потом перейти к Spring?
Сперва изучите эти темы, а потом уже Spring.
https://javastudy.ru/interview/jee-spring-question...