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

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.

主站蜘蛛池模板: 文安县| 庆城县| 绥棱县| 武平县| 海林市| 吴旗县| 昆明市| 尉氏县| 天祝| 普安县| 信阳市| 徐汇区| 云安县| 乌兰察布市| 同心县| 临清市| 策勒县| 兰坪| 枝江市| 曲靖市| 同心县| 阳城县| 娄底市| 昭通市| 盐山县| 呼伦贝尔市| 紫金县| 大英县| 万宁市| 绵竹市| 玉林市| 潜江市| 广灵县| 五峰| 车致| 屯门区| 马关县| 泸州市| 安陆市| 松原市| 怀仁县|