I have finished learning Java and I'm fairly comfortable with it. I'm now
starting to learn Spring, but I'm having trouble figuring out how deeply I
should learn it.
I'm currently reading "Spring Start Here" by Laurentiu Spilca. I'm finding
it useful, but I'm not sure whether it is enough for a strong foundation
in Spring/Spring Boot or what I should study after finishing it.
I'm also unsure how much Servlet knowledge I should have before/alongside
Spring MVC. Do I need to study Servlets/JSP in depth? I've found some
Servlet books that are almost as large as the Spring books, so I'm having
trouble figuring out how much Servlet knowledge is actually necessary.
My current book explains some Servlet concepts, such as how the
DispatcherServlet receives a request and passes it to the appropriate
parts of the backend. Is this level of Servlet knowledge enough, or should
I study Servlets in more depth?
I'm a 3rd-year undergraduate preparing for internships and backend
development roles. I don't want to go into documentation/source-code-level
depth, but I do want to understand the important concepts well enough to
answer interview questions about how Spring works internally at a
conceptual level.
For example, how deeply should I understand:
- Bean lifecycle and scopes
- AOP and proxies
- Spring Boot auto-configuration
- Spring MVC / DispatcherServlet
- Spring Data / JPA / Hibernate
- Spring Security
For Spring Boot specifically, should I understand how
SpringApplication.run() works internally and how auto-configuration
happens, or is it enough to understand these concepts at a high level?
I've already started learning Spring rather than just looking for a
roadmap, so I'm mainly trying to figure out where to draw the line between
"good enough for internships" and unnecessary depth.
What resources/books would you recommend after Spring Start Here?
Also, what Spring-related topics should I prioritize after completing the
book?
I'd especially appreciate advice from people who learned Spring as
students or who use Spring professionally.