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