Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/gogoasa-c/wtf-is-spring

Guide for Spring & Spring Boot for people with technical backgrounds and a bit of experience doing software development.
https://github.com/gogoasa-c/wtf-is-spring

guide java spring spring-boot

Last synced: 12 days ago
JSON representation

Guide for Spring & Spring Boot for people with technical backgrounds and a bit of experience doing software development.

Awesome Lists containing this project

README

        

# WTF is: Spring & Spring Boot

So, if you got here you're probably wondering "WTF is Spring?".

That's rather simple, actually:

### Spring is:

Basically the best framework for building enterprise-level Java applications.
It's a framework that provides a comprehensive programming and configuration model
for modern Java-based enterprise applications - on any kind of deployment platform.

But to be more blunt about it, the way I see the Spring framework is:

![A photo of cake ingredients](https://www.delscookingtwist.com/wp-content/uploads/2024/01/Orange-Pound-Cake_Ingredients-1024x1536.jpg)

Yes, really. Spring is like the ingredients for a cake. It provides you with all
the tools you need to build a great application that'll satisfy all of your needs.

#### BUT

Sometimes it's hard to just make the cake yourself, even if you have all the
tools at your disposal, like all the ingredients and everything else, it still
takes time to set up everything and make your cake.

Plus, there's still a ton to clean up after the fact. And we don't wanna be wasting
time any time, right? We want to be as efficient as possible. That's why you're here
and not following some Udemy course, after all.

That's where **Spring Boot** comes in.

### Spring Boot is:

A framework that makes it easy to create stand-alone, production-grade
Spring based Applications. It's a framework that takes an opinionated view of
building Spring applications and gets you up and running as quickly as possible.

So, basically Spring Boot is this:

![A photo of chocolate cake](https://mrbrownbakery.com/image/images/GJ7uCwGiteTF24HTWBclkziVTdhpQeZWH23MvQfq.jpeg?p=full)

...or this:

![A photo of a cake shaped like a penguin](https://chelsweets.com/wp-content/uploads/2022/11/recipe-card-penguin-cake-closer-540x720.jpg)

Yes, I mean that, since you can customize it however you like.
It can be any cake you want.

In a way, Spring Boot is like buying the cake straight from the bakery, only
spending time in going to and coming home from the bakery, 'till you have your cake
ready to be enjoyed.

Now, if you're wondering where that bakery is, it's... well, right here:

[Spring Initializr](https://start.spring.io/) - This is where you can get your cake.
Fully customized to your heart's content, adding all the ingredients you want, and
even some you didn't know you wanted.

But enough of the customary introduction, let's get to the nitty-gritty of it all.

You'll find everything you need under the `src/main/java/org.gogoasa.WTF.is.Spring` folder.

But if you're lazy like I am, here's some shortcuts for each chapter:

### Table of Contents:

- [0x01: Basics](./src/main/java/org/gogoasa/WTF/is/Spring/_01/basics.md)
- [0x02: Goodbye Spring, hello Spring Boot!](./src/main/java/org/gogoasa/WTF/is/Spring/_02/springboot.md)
- [0x03: How to actually set up your first project](./src/main/java/org/gogoasa/WTF/is/Spring/_03/setting_up_your_first_project.md)
- [0x04: Dependencies you'll probably be needing](./src/main/java/org/gogoasa/WTF/is/Spring/_04/dependencies.md)
- [0x05: How do I configure my application?](./src/main/java/org/gogoasa/WTF/is/Spring/_05/config.md)
- [0x06: What does the file structure of a Spring project look like?](./src/main/java/org/gogoasa/WTF/is/Spring/_06/filestructure.md)
- [0x07: So, how do controllers work in Spring?](./src/main/java/org/gogoasa/WTF/is/Spring/_07/controllers.md)
- [0x08: Servicing in Spring](./src/main/java/org/gogoasa/WTF/is/Spring/_08/services.md)
- [0x09: Repositories & communicating with the database](./src/main/java/org/gogoasa/WTF/is/Spring/_09/repositories.md)
- [0x0A: How to log things properly](./src/main/java/org/gogoasa/WTF/is/Spring/_10/logging.md)

That is most everything you will need to get started with Spring. Of course, there's plenty more
out there, but someone more experienced than I can probably guide you through that 10 times better.

However, if you wish to look into things even deeper some things I recommend are the following:
- [The Holy Grail of Spring & Java (Baeldung)](https://www.baeldung.com/);
- JSON parsing with the Jackson library;
- Looking into actually using Spring security, JWTs, OAuth;
- Spring Cloud, in case you're interested in microservices (personal favourite of mine);
- Test frameworks: JUnit, Mockito, TestNG; also specific SpringBootTest integration tests;
- Kotlin, if you want to see what Java would look like with less boilerplate;
- *Maybe more... sometime in the future*

---
- **[Project Example](./src/main/java/org/gogoasa/WTF/is/Spring/ANOTHERREADME.md)**