How do you run vaadin + spring boot with gradle?

I have a test app like so:

build.gradle

plugins {
    id 'org.springframework.boot' version '2.4.0-M1'
    id 'io.spring.dependency-management' version '1.0.9.RELEASE'
    id 'java'
    id 'application'
    id 'com.vaadin' version '0.8.0'
}

wrapper {
    gradleVersion = '6.5.1'
}


group = 'tobi'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '14'
targetCompatibility = '14'
mainClassName = "tobi.test.Main"

repositories {
    mavenCentral()
    maven {
        url 'https://repo.spring.io/milestone'
    }
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
    implementation 'com.vaadin:vaadin:14.3.1'

    testImplementation 'org.springframework.boot:spring-boot-starter-test'
    testImplementation 'io.projectreactor:reactor-test'
}

test {
    useJUnitPlatform()
}

MainView.java

package tobi.test.ui;

import com.vaadin.flow.component.html.Div;
import com.vaadin.flow.component.html.Paragraph;
import com.vaadin.flow.router.Route;

@Route("/")
public class DashboardView extends Div {{ add(new Paragraph("TEXT")); }}

When I run gradlew run (or gradlew bootRun), and navigate to http://{{app_url}}/ I get the error:

Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback.

Sat Aug 01 12:49:24 BST 2020
There was an unexpected error (type=Not Found, status=404).

From what I’ve read, this should be working properly.
I also tried running vaadinPrepareFrontend/vaadinBuildFrontend (from the vaadin gradle plugin) but that doesn’t fix the issue.

Does anyone know what I’m missing?