Начнем обновлять пружину с 3.3.6 до 3.4.0 .
build.gradle
Код: Выделить всё
//build.gradle
//old
plugins {
id 'java'
id 'org.springframework.boot' version '3.3.6'
id 'io.spring.dependency-management' version '1.1.6'
id 'org.sonarqube' version '5.1.0.4882'
id 'jacoco'
id 'com.gorylenko.gradle-git-properties' version '2.4.2'
id 'project-report'
}
ext {
set('springCloudGcpVersion', "5.8.0")
set('springCloudVersion', "2023.0.4")
}
dependencies {
implementation platform('com.google.cloud:spring-cloud-gcp-dependencies:5.8.0')
implementation platform('org.springframework.cloud:spring-cloud-dependencies:2023.0.4')
implementation 'org.springframework.boot:spring-boot-starter'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-validation'
implementation 'org.springframework.cloud:spring-cloud-starter-openfeign'
implementation 'org.bouncycastle:bcprov-jdk18on:1.79'
implementation 'org.springframework.boot:spring-boot-starter-actuator'
implementation 'com.google.cloud:spring-cloud-gcp-starter-secretmanager'
implementation 'com.google.cloud:spring-cloud-gcp-starter-storage'
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.6.0'
implementation 'org.apache.commons:commons-collections4:4.4'
implementation 'org.mapstruct:mapstruct:1.6.3'
annotationProcessor 'org.mapstruct:mapstruct-processor:1.6.3'
annotationProcessor 'org.projectlombok:lombok-mapstruct-binding:0.2.0'
annotationProcessor 'org.projectlombok:lombok'
compileOnly 'org.projectlombok:lombok'
runtimeOnly 'org.postgresql:postgresql'
}
dependencyManagement {
imports {
mavenBom "com.google.cloud:spring-cloud-gcp-dependencies:${springCloudGcpVersion}"
mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
}
}
< /code>
//build.gradle
//new
plugins {
id 'java'
id 'org.springframework.boot' version '3.4.0'
id 'io.spring.dependency-management' version '1.1.6'
id 'org.sonarqube' version '5.1.0.4882'
id 'jacoco'
id 'com.gorylenko.gradle-git-properties' version '2.4.2'
id 'project-report'
}
ext {
set('springCloudGcpVersion', "5.9.0")
set('springCloudVersion', "2024.0.0")
}
dependencies {
implementation platform('com.google.cloud:spring-cloud-gcp-dependencies:5.9.0')
implementation platform('org.springframework.cloud:spring-cloud-dependencies:2024.0.0')
implementation 'org.springframework.boot:spring-boot-starter'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-validation'
implementation 'org.springframework.cloud:spring-cloud-starter-bootstrap'
implementation 'org.springframework.cloud:spring-cloud-starter-openfeign'
implementation 'org.bouncycastle:bcprov-jdk18on:1.79'
implementation 'org.springframework.boot:spring-boot-starter-actuator'
implementation 'com.google.cloud:spring-cloud-gcp-starter-secretmanager'
implementation 'com.google.cloud:spring-cloud-gcp-starter-storage'
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.7.0'
implementation 'org.apache.commons:commons-collections4:4.4'
implementation 'org.mapstruct:mapstruct:1.6.3'
annotationProcessor 'org.mapstruct:mapstruct-processor:1.6.3'
annotationProcessor 'org.projectlombok:lombok-mapstruct-binding:0.2.0'
annotationProcessor 'org.projectlombok:lombok'
compileOnly 'org.projectlombok:lombok'
runtimeOnly 'org.postgresql:postgresql'
}
dependencyManagement {
imports {
mavenBom "com.google.cloud:spring-cloud-gcp-dependencies:${springCloudGcpVersion}"
mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
}
}
< /code>
lib version
[list]
[*]org.springframework.boot: 3.3.6 -> 3.4.0
[*]com.google.cloud:spring-cloud-gcp-dependencie: 5.8.0 -> 5.9.0
[*]org.springframework.cloud:spring-cloud-dependencies: 2023.0.4 -> 2024.0.0
[*]org.springdoc:springdoc-openapi-starter-webmvc-ui: 2.6.0 -> 2.7.0
[/list]
Problem
Now, datasource connect failed because using secretmanagerдетали проблемы и тест
Код: Выделить всё
# application.yml
spring:
config:
import: "sm://"
datasource:
url: jdbc:postgresql://localhost:5432/cehr?currentSchema=XXXX
username: ${sm://psql-username}
password: ${sm://psql-password}
< /code>
@Service
public class XXXService extends CommonService {
@Autowired
private SecretManagerTemplate secretManagerTemplate;
@Value("${spring.datasource.username}")
private String username;
@Value("${spring.datasource.password}")
private String password;
@Value("${sm://psql-username}")
private String username2;
@Value("${sm://psql-password}")
private String password2;
public void execute() {
System.out.println("username = " + username);
System.out.println("password = " + password);
System.out.println("username2 = " + username2);
System.out.println("password2 = " + password2);
System.out.println("psql-username = " + secretManagerTemplate.getSecretString("sm://psql-username"));
System.out.println("psql-password = " + secretManagerTemplate.getSecretString("sm://psql-password"));
}
}
< /code>
# output
username = //psql-username
password = //psql-password
username2 = //psql-username
password2 = //psql-password
psql-username = ********** (correct)
psql-password = ********** (correct)
< /code>
Problem analysis
[list]
[*]secretmanager[*]
Код: Выделить всё
secretmanager[/list]
Подробнее здесь: https://stackoverflow.com/questions/792 ... r-not-work