官术网_书友最值得收藏!

Creating a reactive web application with Spring Initializr

In the last chapter, we took a quick tour through the Spring Initializr site at http://start.spring.io. Let's go back there and pick some basic ingredients to start building our social media site by picking the options needed as shown in the following screenshot:

As shown in the preceding screenshot, we've picked the following options:

  • Build system: Gradle
  • Spring Boot Version: 2.0
  • Group: com.greglturnquist.learningspringboot
  • Artifact: learning-spring-boot

For dependencies, we are going to use these:

  • Reactive Web: This pulls in Reactive Spring, something we'll explore here and through the rest of this book
  • Lombok: This is a tiny library that keeps Java interesting by handling getters, setters, toString, equals, hashCode, and more
  • Thymeleaf: This is not Boot's only supported template library, but a powerful one that includes reactive support as well as strict HTML compliance.

From here, we merely need to click on the Generate Project button and a zipped up project will be downloaded. Import it into our IDE, and we're ready to get rolling.

(We will add more dependencies to our project in later chapters.)

We won't list the entire Gradle build file generated by the site, but the dependencies are listed as follows:

    dependencies { 
      compile('org.springframework.boot:spring-boot-starter-webflux') 
      compile("org.springframework.boot:spring-boot-starter-thymeleaf") 
      compile('org.synchronoss.cloud:nio-multipart-parser:1.1.0') 
      compile('org.projectlombok:lombok') 
      testCompile('org.springframework.boot:spring-boot-starter-test') 
    } 

The following dependencies are included in the build file:

  • spring-boot-starter-webflux: This is the foundation for a Reactive Spring web applications
  • spring-boot-starter-thymeleaf: This brings in Thymeleaf's template engine
  • nio-multipart-parser: This is a third-party library from Synchronoss, which supports reactive multipart file uploads
  • lombok: This is a convenient library to create mutable and immutable value objects among other things
  • spring-boot-starter-test: This is a collection of test libraries including JUnit, Spring Boot Test, Mockito, AssertJ, JSONassert, and Hamcrest

What version of Spring Boot are we using? That can be spotted toward the top of build.gradle inside the buildscript fragment, as seen here:

    ext { 
      springBootVersion = '2.0.0.M5' 
    } 

The version is specified at the top to feed both spring-boot-gradle-plugin as well as in the dependencies.

The Gradle build additionally uses the Spring team's Dependency Management Gradle plugin (available here: https://github.com/spring-gradle-plugins/dependency-management-plugin), which includes several Maven-like dependency management features. It includes the ability to consume any Maven Bills of Materials (BOMs) while also handling direct and transitive dependencies.

With our build file in place, we can now dive into reactive programming.

主站蜘蛛池模板: 沂南县| 河曲县| 栖霞市| 阿拉善右旗| 大城县| 三门县| 孟津县| 凤庆县| 湖北省| 濉溪县| 连南| 孟村| 威远县| 缙云县| 建水县| 丹巴县| 健康| 泽库县| 宜宾县| 湾仔区| 隆化县| 全州县| 宜兰县| 苏尼特右旗| 自贡市| 滦南县| 福清市| 响水县| 博白县| 贵州省| 乐业县| 遂昌县| 亳州市| 博客| 盐城市| 泽库县| 抚顺市| 宁蒗| 道真| 义乌市| 陆良县|