一、初識 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
微信掃一掃
支付寶掃一掃