Spring Boot Course · Reference

Glossary

The vocabulary of Spring Boot. Terms here are used consistently across every lesson. Bookmark this; it grows over time.

Spring Framework
The large, foundational Java framework Spring Boot is built on. Its core idea is inversion of control: you describe the objects your app needs and Spring creates and wires them together for you. added L1
Spring Boot
An opinionated layer on top of Spring that removes boilerplate. It gives you sensible defaults, an embedded web server, and auto-configuration so you can run a real app with almost no manual setup. added L1
Dependency Injection (DI)
The pattern where an object receives the things it depends on from the outside (Spring supplies them) instead of creating them itself. Makes code loosely coupled and easy to test. added L1
Bean
Any object that Spring creates, configures, and manages for you inside its application context. Your controllers, services, and repositories all become beans. added L1
Application Context
Spring's container — the registry that holds all the beans and knows how to wire them together. added L1
Auto-configuration
Spring Boot inspects the libraries (starters) on your classpath and automatically configures sensible beans for them. Add the web starter → it configures a web server and JSON handling, no XML required. added L1
Starter
A curated bundle of dependencies for one job, named spring-boot-starter-*. E.g. spring-boot-starter-web pulls in everything needed to build a web/REST app, at compatible versions. added L1
SDKMAN!
A version manager for the JVM ecosystem (Java, and tools like the Spring Boot CLI) on macOS/Linux. Install a JDK with sdk install java 21-tem and switch versions per project with sdk use — no manual PATH/JAVA_HOME editing. added L1
JDK (Java Development Kit)
The toolkit that compiles and runs Java code (compiler + runtime + libraries). Spring Boot needs one installed; we get it via SDKMAN. added L1
Spring Boot CLI
A command-line tool (installable via sdk install springboot) whose spring init command generates a project from the terminal — the CLI front-end to Spring Initializr. added L1
Maven
A build tool for Java that compiles your code, runs tests, manages dependencies, and packages the app — all driven by a pom.xml file. (Gradle is the common alternative.) added L1
Maven Wrapper (mvnw)
A script committed inside the project (mvnw / mvnw.cmd) that downloads and runs the exact Maven version the project needs, so contributors don't have to install Maven themselves. Run goals with it, e.g. ./mvnw spring-boot:run. added L1
Spring Initializr
The official project generator at start.spring.io. You pick your build tool, language, Spring Boot version, and starters; it hands you a ready-to-run project. added L1
@SpringBootApplication
The single annotation on your main class that switches on auto-configuration, component scanning, and configuration. The entry point of every Spring Boot app. added L1
@RestController
Marks a class as a web controller whose method return values are written directly to the HTTP response body (as JSON), rather than treated as view names. added L1
@GetMapping (and friends)
Maps an HTTP request to a method. @GetMapping("/books") handles GET /books; siblings are @PostMapping, @PutMapping, @DeleteMapping. added L1
Embedded server
Spring Boot ships a web server (Tomcat by default) inside your application JAR. You run a plain Java program and it serves HTTP — no separate server to install or deploy to. added L1
JSON
JavaScript Object Notation — a compact, language-neutral text format for structured data. The default body format for REST APIs; what your endpoints return. added L2
Resource
The "noun" a REST API exposes and lets clients act on — e.g. a book at /api/books. Endpoints are organised around resources. added L2
Package-by-feature
Organising code so all classes for one feature live in one package (com.example.library.book holds the book's controller, service, repository, model). The alternative is package-by-layer (separate controller/service/… packages). Either way, keep everything under the main class's package so component scanning finds it. added L2
UUID
A 128-bit globally-unique identifier (e.g. 11111111-1111-1111-1111-111111111111). We use it as the Book id: it can be generated by the app, isn't sequentially guessable, and stays unique across systems. The common alternative is an auto-incremented numeric Long. Jackson serialises a UUID as a JSON string. added L2
Serialization / Deserialization
Serialization turns a Java object into JSON (on the way out); deserialization turns incoming JSON back into a Java object (on the way in). added L2
Jackson
The JSON library bundled by spring-boot-starter-web. It reads an object's accessors to serialise it to JSON, and builds objects from incoming JSON. You rarely call it directly — Spring does. added L2
HTTP message converter
The Spring MVC component that writes a method's return value to the response body (and reads request bodies into objects). The Jackson-backed converter is what produces your JSON and sets Content-Type: application/json. added L2
Content negotiation
How Spring decides which format to send (e.g. JSON) based on the return type and what the client asks for, then picks the matching message converter. added L2
@ResponseBody
Marks a return value as the HTTP response body itself (not a view name to render). It's folded into @RestController, which is why every method there returns data. added L2
@RequestMapping
Maps requests to a controller or method. On a class it sets a base path prepended to every method's mapping; the HTTP-verb shortcuts (@GetMapping, etc.) are specialised forms of it. added L2

← Course home