Skip to main content

Quickstart

Spring goals​

  • Lightweight development with Java POJOs (Plain-Old-Java-Objects)
  • Dependency injection to promote loose coupling
  • Declarative programming with Aspect-Oriented-Programming (AOP)
  • Minimize boilerplate Java code

Standard Directory Structure​

DirectoryDescription
src/main/javaJava source code
src/main/resourcesProperties / config files
src/main/webappJSP files and web config files other web assets (images, css, js, etc)
src/testUnit testing code and properties
targetDestination directory for compiled code. Automatically created by Maven

Project Coordinates​

NameDescription
Group IDName of company, group, or organization. Convention is to use reverse domain name
Artifact IDName for this project
VersionA specific release version like: 1.0, 1.6, 2.0 If project is under active development then: 1.0-SNAPSHOT

When adding a dependency version is optional, but it's best practice to include the version for repeatable builds

Why starters​

  • A curated list of Maven dependencies
  • A collection of dependencies grouped together
  • Tested and verified by the Spring Development team
  • Makes it much easier for the developer to get started with Spring
  • Reduces the amount of Maven configuration

Starters list can be found here

Spring Boot Starter Parent​

  • Default Maven configuration: Java version, UTF-encoding etc
  • Dependency management
  • Use version on parent only – spring-boot-starter-* dependencies inherit version from it
  • Default configuration of Spring Boot plugin

Spring Boot Dev Tools​

Automatically restarts your application when code is updated

Set up for IntelliJ:

Preferences > Build, Execution, Deployment > Compiler > Build project automatically
Preferences > Advanced Settings > Allow auto-make to ...

Dev Tools documentation can be found here

Spring Boot Actuator​

  • Exposes endpoints to monitor and manage your application
  • Automatically exposes endpoints for metrics out-of-the-box
  • Endpoints are prefixed with: /actuator

Actuator endpoints can be found here

Running from the Command-Line​

Using java -jar​

mvn package
java -jar ourcoolapp-0.0.1.jar

Using maven plugin​

mvn spring-boot:run

Spring Boot Properties​

We can read our custom properties from application.properties via the @Value annotation

Common application properties are listed here