Java Spring Boot Cheat Sheet
Quick reference guide for Java Spring Boot: Annotations, REST controllers, Spring Data JPA, and application properties.
Languages
spring-boot
java
backend
Spring Boot is an open-source Java framework used to create stand-alone, production-grade Spring-based applications with minimal boilerplate.
Key Annotations Reference
Table
| Annotation | Target | Purpose / Meaning |
|---|---|---|
@SpringBootApplication | Class | Enables auto-configuration, component scanning, and property support |
@RestController | Class | Marks class as RESTful controller (combines @Controller & @ResponseBody) |
@Service / @Repository | Class | Marks service layer business logic or data repository component |
@Autowired | Field/Constructor | Triggers Spring Dependency Injection |
@GetMapping, @PostMapping | Method | Map HTTP GET or POST request paths |
@PathVariable, @RequestParam | Parameter | Extract URL path parameters (/users/{id}) or query parameters |
REST Controller & Spring Data JPA Example
java
// UserEntity.java
@Entity
@Table(name = "users")
public class UserEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(nullable = false, unique = true)
private String email;
// Getters and Setters
}
// UserRepository.java
@Repository
public interface UserRepository extends JpaRepository<UserEntity, Long> {
Optional<UserEntity> findByEmail(String email);
}
// UserController.java
@RestController
@RequestMapping("/api/v1/users")
public class UserController {
private final UserRepository userRepository;
@Autowired
public UserController(UserRepository userRepository) {
this.userRepository = userRepository;
}
@GetMapping("/{id}")
public ResponseEntity<UserEntity> getUserById(@PathVariable Long id) {
return userRepository.findById(id)
.map(ResponseEntity::ok)
.orElse(ResponseEntity.notFound().build());
}
}
Maven & Gradle CLI Commands
Table
| Command | Action / Purpose |
|---|---|
./mvnw spring-boot:run | Start Spring Boot application via Maven wrapper |
./mvnw clean package | Build executable JAR package in target/ directory |
./gradlew bootRun | Start Spring Boot application via Gradle wrapper |
./gradlew build | Build executable JAR package via Gradle |
Common Pitfalls & Tips
[!WARNING] Component scanning only scans sub-packages located underneath the package containing
@SpringBootApplication. Classes placed outside this root package tree will not be injected into Spring context!
[!TIP] Prefer constructor injection over
@Autowiredfield injection for better testability and immutability.