How should back-end software engineers learn Spring?
This article describes the direction for learning Spring for back-end software engineers.
The learning process consists of a total of 5 steps.
- Basic knowledge of Spring
- Spring web knowledge
- Spring MVC and the technologies we use at work
- How to use Database in Spring
- Advanced Knowledge of Spring
About Spring
Step 1. Basic knowledge of Spring
Spring is a Java-based framework, so you need to know about the Java language to learn it. Java language requires at least knowledge of syntax, object orientation, and collection knowledge.
If you have learned or already know the Java language, start learning Spring introductory.
Quickly implement a simple web application that works in Spring with code.
This will help you get a feel for what technologies are being used and how to develop web applications with Spring, and get the big picture in mind.
The next step is to learn the basics of how springs work.
Spring is a tool that facilitates object-oriented development. Learn important contents such as Spring’s 5 principles of object-oriented development (SOLID), dependency injection (DI), and DI container concept.
Step 2. Spring web knowledge
In order to create a Spring web application, you need to learn basic knowledge about HTTP.
Step 3. Spring MVC and the technologies we use at work
The next step is to learn how to develop web applications using Spring MVC.
When developing Spring web applications, you need to learn view templates, messages, internationalization, validation, cookies, sessions, filters, interceptors, exception handling, and file uploads that are mainly used in work.
Step 4. How to use Database in Spring
Before learning how to use databases in Spring, you need to learn about relational databases (RDBMS). At a minimum, you need to know how to create tables and write basic SQL (CRUD).
The next step is to learn how to utilize Spring to store and manage data.
Learn JDBC, connection pool, data source, transaction, exception handling, etc. If you have learned the basic knowledge of DB, the next step is to learn application technologies such as transactions, JDBC templates, MyBatis, JPA, Spring JPA, and QueryDSL.
Step 5. Advanced Knowledge of Spring
Most projects that start with Spring use Spring Boot as a must. Spring Boot is a technology that helps you start Spring very easily and conveniently. And it offers numerous convenience features.
You should focus on the features provided by Spring Boot and learn the working principles of Spring.
In addition, monitoring methods necessary for practice also need to be learned.
Next, learn about core design patterns, thread locals, AOP, and proxy concepts provided by Spring.
Through the above process, you can learn the basic development knowledge of Spring required for work.
Leverage Spring Boot and JPA.
From now on, you will learn about Spring Boot and JPA, which are often used in real work.
JPA is a convenient technology that allows you to store information in a database without SQL. It is used in many places because of the high development productivity of Java developers.
After learning JPA technology, try web application development using Spring Boot and JPA. You will also learn how to create the necessary APIs and optimize performance.
Spring Data JPA is a technology that helps convenient development using Spring and JPA. This can increase developer productivity.
QueryDSL is a technology that helps solve the problem of complex dynamic queries effectively when using JPA. Since complex queries are often used in actual work, JPA and QueryDSL must be learned and used together.
Finally, apply it to web application development using Spring Data JPA and Query DSL.
If you go through all the above processes, you will understand how to do it in line with the latest back-end development trend in Korea, and you will be able to develop web applications yourself.
If you are new to development, you can also create a portfolio of backend development experience.
Let’s make and learn
Since the above process takes quite a long time to learn, we recommend the following process to learn more quickly.
Create a web application with Spring and go through the process of registering data to a database. And while learning the necessary basic knowledge, understand Spring step by step.
Trying a development in practice first, then learning the theory, will help you understand how it works faster.