Start New Project

Let's start a new project!

Spring Initializr

The most effective way I know to start a new Spring Boot project is by using the Spring Initializr.

The Spring Initializr is a website where you specify the configuration you want to use for your new Spring Boot project, and it generates a skeleton project for you to build on.

To access the Spring Initializr, head to https://start.spring.io/.

Project & Language Configuration

The first set of configuration we must specify is the project and language configuration.

Here we answer the question, "Which tool and which programming language do we want to use?"

In this build we're writing Java code with Apache Maven as our build tool, so be sure to select "Maven" under the "Project" heading and "Java" under the "Language" heading.

Spring Boot Version

Now for the Spring Boot version.

This is important, as different versions of Spring Boot can work in subtly different ways.

This build uses the 4.0.x version of Spring Boot, so make sure to select the latest version of the 4.0.x releases. For example 4.0.0, 4.0.1, 4.0.2 etc.

Caution

If you select a different version of Spring Boot, the steps in this build may not work for you.

Please use the versions specified in the build wherever possible.

Project Identity

Now for the project metadata. This contains configuration on how we identify our project, how we configure it, how we run it, and which version of Java our app uses.

Let's start with the configuration to identify our project:

  • Group: com.devtiro
  • Artifact: task
  • Name: Devtiro Task App
  • Description: A task tracking application.
  • Package name: com.devtiro.task

Packaging

Now for packaging, we need to select "Jar", and not "War". Selecting Jar gives us the option of a project with a bundled app container. This means we can just run the app without setting up anything extra.

Selecting War means you would need to deploy your built app to a separate app container to run it. That's an additional step that doesn't provide value to our build, so we're not going to do it.

Properties vs YAML

We'll select "Properties" for the configuration for this build. Properties have the benefit of being simpler to work with, but less flexible than YAML. This makes properties the best option for this build.

Java Version

At the time of writing, the latest version of Java is version 25, so of the options for Java version, we'll select 25.

Caution

If you select a different version of Java, the steps in this build may not work for you.

Please use the versions specified in the build wherever possible.

Dependencies

One of the big benefits of using Spring Boot is the extensive ecosystem of dependencies you get access to.

Each dependency solves a specific problem. Here are the ones we need for this build:

  • Spring Web - We need this to build our app's REST API.
  • Validation - We need this to validate requests made to our app's REST API.
  • Spring Data JPA - We need this to interact with a database using Java objects, rather than writing SQL.
  • H2 Database - We need this to run the in-memory database we use for this build.

Caution

Be sure to select "Spring Web" and not "Spring Reactive Web"!

That's it! Now click the "GENERATE" button to download your skeleton Spring Boot project.

Open the Project

With the project downloaded, we must open it in IntelliJ IDEA to start development.

The downloaded file is a zip file, so we must unzip it somewhere on our machine that makes sense to us.

With that done, we open IntelliJ IDEA and follow these steps:

  1. Select "File" -> "Open" in the toolbar at the top of the screen.
  2. Select the project's unzipped folder in the file explorer.
  3. Click "OK".

This opens the project in IntelliJ, ready for us to start development!

Summary

  • Used the Spring Initializr to create a new project.
  • Opened the new project in IntelliJ IDEA.
© 2026 Devtiro Ltd. All rights reserved