I like Spring Boot. Spring Boot is great...if you stay within their parameters. One major pain point though is not using the Spring boot parent pom:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.2.2.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

If you have your own parent pom/infrastructure, you have to "side-load" Spring boot dependencies thusly:

<dependency>
    <!-- Import dependency management from Spring Boot -->
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-dependencies</artifactId>
    <version>2.2.5.RELEASE</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>

As their documentation states, if you use the Spring parent pom you can simply override versions with maven properties. Super easy, barely an inconvenience! Unfortunately if you side-load, you now have to specify every single dependency manually. This gets unwieldy quickly, especially in transitive enterprise dependencies.