Demystifying Spring: A Beginner's Journey into Spring Framework and Spring Boot

What this series is for? ⛓️‍💥

This series of articles is my personal way of documenting and sharing my understanding of the Spring Framework and Spring Boot. As a beginner with this framework, I believe that uncovering how things work behind the scenes will significantly boost my ability to develop faster, integrate different technologies properly, and write clean, efficient code. If you find any incorrect information or have suggestions, I’d be more than grateful to hear them!

My journey 🗺️

My journey into developing web services began with using web frameworks directly—specifically, Ruby on Rails for the backend as a REST API, paired with VueJS for the frontend. At the time, I was a part-time developer while studying at university and had little fundamental knowledge of how the web actually works behind the scenes. This piqued my interest in web technologies and led me to dive deeper into website development, shifting from a Computer Engineering path that typically focuses more on microprocessors and IoT.

As I continued relying on frameworks and libraries, I gradually started to demystify the wonders of data transmission and HTTP. This opened up a new perspective for me: understanding the fundamentals enables you to apply concepts across different technologies. Much like how grasping the purpose of programming languages makes it easier to pick up new ones, this understanding allowed me to quickly adapt to other web frameworks—such as Go with Fiber, Python with Flask/Django/FastAPI, JavaScript with Express, and most recently, Java with Spring Boot.

However, I find Java with Spring Boot—and the Spring Framework in general—to be quite unique. While it shares some characteristics with Python web frameworks, like the use of annotations, it has a lot of abstractions that I’m eager to uncover. What I particularly like is the vast ecosystem of libraries that are battle-tested and production-ready. So far, I’ve mostly been using the common annotations for CRUD operations and sticking to the familiar MVC pattern. In reality, my usage of Spring has only scratched the surface.

That’s why I’m writing this series: to go deeper, understand the “why” behind the magic, and hopefully help others along the way.

Weekly Plan 🗓️

WeekFocus AreaKey TopicsOutcome
1FundamentalsIoC, DI, Beans, ApplicationContextUnderstand core Spring concepts
2Spring Boot BasicsSpring Boot auto-configuration, starters, devtoolsBuild your first Spring Boot app
3ConfigurationProperties, Profiles, YAML, @ValueManage environment configs
4Data LayerSpring JDBC Template, Spring Data JPA, Repositories, Entity RelationshipsCRUD with databases
5Web LayerSpring MVC, REST Controllers, Request MappingCreate RESTful services
6Advanced TopicsAOP, Transactions, Error HandlingWrite robust, scalable code
7Spring SecurityAuth, JWT, Method-level securitySecure your apps
8Final ProjectREST API projectConsolidate everything

I hope you find this series insightful and helpful in your own Spring learning journey. Cheers! ☕

0
Subscribe to my newsletter

Read articles from Marc Vincent Bentoy directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Marc Vincent Bentoy
Marc Vincent Bentoy