一、初識 Gradle Spring Boot
Gradle 是一種基於 Apache Ant 和 Apache Maven 概念的項目自動化構建工具。它使用一種基於 Groovy 的特定領域語言(DSL)來聲明項目設置,而不是傳統的 XML。
Spring Boot 是一個用於創建可獨立運行的、基於 Spring 的應用程序的 Spring 模塊,它基於 Spring 框架,主要是簡化了使用 Spring 的難度。Spring Boot 提供了自動化配置的方式,可以快速構建 Spring 應用程序,大幅度提高了開發效率。
Gradle Spring Boot 把 Gradle 和 Spring Boot 有機地結合在一起,它可以方便地構建應用程序和部署環境,同時支持多種構建和部署方式,並且支持很多常見的插件,比如 Java、Groovy、Scala、Kotlin 和 Android。
二、Gradle Spring Boot的優點
1、簡潔易用:Gradle Spring Boot 藉助於 DSL,以及 Spring Boot 精簡資源的特性,可以大幅度簡化應用程序的開發過程,提高開發效率。
2、可配置性強:Gradle Spring Boot 可以方便地配置 Gradle 的各項屬性,同時也能夠配置 Spring Boot 的各種設置,例如將應用程序無縫地整合到雲環境中。
3、插件支持豐富:Gradle Spring Boot 內置了豐富的插件,增加了 Gradle 的靈活性。
4、多種構建和部署方式:Gradle Spring Boot 支持多種構建和部署方式,比如 Docker 和 Kubernetes,能夠方便地部署在基礎設施上。
5、易於測試:Gradle Spring Boot 還支持多種測試工具,例如 JUnit、Mockito、Spock 等,可以很方便地對應用程序進行測試。
三、Gradle Spring Boot的實例
1、Gradle Spring Boot 快速開始
// build.gradle文件 plugins { id 'org.springframework.boot' version '2.5.4' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java' } group = 'com.gradlespringboot' version = '0.0.1-SNAPSHOT' sourceCompatibility = '1.8' repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' testImplementation 'org.springframework.boot:spring-boot-starter-test' }
上述代碼是 Gradle Spring Boot 項目的 build.gradle 文件,其中包括了 Spring Boot 相關配置和依賴管理。
2、Gradle Spring Boot 實現多環境配置
// application.yml文件 server: port: ${PORT:8080} spring: application: name: gradlespringboot profiles: active: @spring.profiles.active@ --- spring: profiles: dev datasource: url: jdbc:mysql://localhost:3306/gradlespringboot?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC username: root password: root --- spring: profiles: prod datasource: url: jdbc:mysql://localhost:3306/gradlespringboot?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC username: root password: root
上述代碼是 Gradle Spring Boot 的多環境配置文件,其中包括了開發環境和生產環境的配置,可以根據需要進行切換。
3、Gradle Spring Boot 實現Swagger2配置
// build.gradle文件 plugins { id 'org.springframework.boot' version '2.5.4' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java' } group = 'com.gradlespringboot' version = '0.0.1-SNAPSHOT' sourceCompatibility = '1.8' repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' testImplementation 'org.springframework.boot:spring-boot-starter-test' compile group: 'io.springfox', name: 'springfox-swagger2', version: '2.9.2' compile group: 'io.springfox', name: 'springfox-swagger-ui', version: '2.9.2' }
上述代碼是 Gradle Spring Boot 的 build.gradle 文件,在默認依賴中添加了 Swagger2 的相關依賴。
// Swagger2配置類 package com.gradlespringboot.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.service.ApiInfo; import springfox.documentation.service.Contact; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2; @Configuration @EnableSwagger2 public class SwaggerConfig { private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("Gradle Spring Boot API") .description("Gradle Spring Boot Restful API文檔") .contact(new Contact("Gradle Spring Boot", "", "")) .version("1.0.0") .build(); } @Bean public Docket api() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() .apis(RequestHandlerSelectors.basePackage("com.gradlespringboot")) .paths(PathSelectors.any()) .build(); } }
上述代碼是 Gradle Spring Boot 中的 Swagger2 配置類,其中定義了 API 的一些基本信息,可以實現 API 文檔的在線展示。
4、Gradle Spring Boot 實現 Redis 依賴配置
// build.gradle文件 plugins { id 'org.springframework.boot' version '2.5.4' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java' } group = 'com.gradlespringboot' version = '0.0.1-SNAPSHOT' sourceCompatibility = '1.8' repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' testImplementation 'org.springframework.boot:spring-boot-starter-test' compile group: 'org.springframework.boot', name: 'spring-boot-starter-data-redis', version: '2.5.4' }
上述代碼是 Gradle Spring Boot 的 build.gradle 文件,在默認依賴中添加了 Redis 的相關依賴。
// Redis 配置類 package com.gradlespringboot.config; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.connection.RedisStandaloneConfiguration; import org.springframework.data.redis.connection.jedis.JedisConnectionFactory; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer; import org.springframework.data.redis.serializer.StringRedisSerializer; @Configuration public class RedisConfig { @Value("${spring.redis.host}") private String host; @Value("${spring.redis.port}") private int port; @Value("${spring.redis.password}") private String password; @Value("${spring.redis.database}") private int database; @Bean(name = "redisConnectionFactory") @ConditionalOnMissingBean public RedisConnectionFactory redisConnectionFactory() { RedisStandaloneConfiguration redisStandaloneConfiguration = new RedisStandaloneConfiguration(); redisStandaloneConfiguration.setHostName(host); redisStandaloneConfiguration.setPort(port); redisStandaloneConfiguration.setPassword(password); redisStandaloneConfiguration.setDatabase(database); JedisConnectionFactory jedisConnectionFactory = new JedisConnectionFactory(redisStandaloneConfiguration); return jedisConnectionFactory; } @Bean(name="redisTemplate") public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory) { RedisTemplate redisTemplate = new RedisTemplate(); redisTemplate.setConnectionFactory(redisConnectionFactory); redisTemplate.setKeySerializer(new StringRedisSerializer()); redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer()); redisTemplate.setHashKeySerializer(new StringRedisSerializer()); redisTemplate.setHashValueSerializer(new GenericJackson2JsonRedisSerializer()); redisTemplate.afterPropertiesSet(); return redisTemplate; } }
上述代碼是 Gradle Spring Boot 的 Redis 配置類,可以實現對 Redis 的相關配置。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/185731.html