小编viv*_*kar的帖子

@ExtendWith(SpringExtension.class) 和 @ExtendWith(MockitoExtension.class) 有什么区别?

我正在使用@RunWith(MockitoJUnitRunner.class)mockito 进行 junit 测试。但是现在我正在使用 spring-boot 和 JUnit 5。
这两个注释之间有什么区别?
我可以只@ExtendWith(SpringExtension.class)用来模拟我的对象吗?

java mockito spring-boot junit5

13
推荐指数
1
解决办法
7306
查看次数

如何修复 spring-boot 应用程序中的错误“java.lang.NoClassDefFoundError: org/springframework/boot/bind/RelaxedPropertyResolver”?

我正在尝试使用 Java 11 和 Spring-boot 2 升级我的演示应用程序。但由于java.lang.NoClassDefFoundError:org/springframework/boot/bind/RelaxedPropertyResolver. 我正在使用最新版本的 spring-boot-starter-parent。

弹簧启动版本:

   <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.5.RELEASE</version>
        <relativePath/>
    </parent>
Run Code Online (Sandbox Code Playgroud)

我在谷歌上搜索了这个问题,发现从 spring-boot 中删除了 RelaxedPropertyResolver。我尝试提供每个版本的 spring-boot 以使我的应用程序与 java 11 兼容。它适用于 spring-boot 版本 1.5.19-RELEASE。

错误:

[INFO ] [2019-05-29T12:24:25,567] | [main][DemoApplication] --- Starting DemoApplication on JARVIS with PID 71600 (C:\viveknaskar\springbootapp\demo-verifier\target\classes started by Vivek in C:\viveknaskar\springbootapp)
[INFO ] [2019-05-29T12:24:25,575] | [main][DemoApplication] --- No active profile set, falling back to default profiles: default
[ERROR] [2019-05-29T12:24:26,712] | [main][SpringApplication] --- Application run failed
java.lang.NoClassDefFoundError: org/springframework/boot/bind/RelaxedPropertyResolver
    at org.springframework.boot.autoconfigure.AutoConfigurationImportSelector.getExcludeAutoConfigurationsProperty(AutoConfigurationImportSelector.java:215)
    at org.springframework.boot.autoconfigure.AutoConfigurationImportSelector.getExclusions(AutoConfigurationImportSelector.java:209) …
Run Code Online (Sandbox Code Playgroud)

java spring spring-boot

9
推荐指数
1
解决办法
2万
查看次数

如何从 Java 中的 Cloud Function 触发 Cloud Dataflow 管道作业?

我需要从 Cloud Functions 触发 Cloud Dataflow 管道。但是 Cloud 函数必须用 Java 编写。因此,Cloud Function 的触发器是 Google Cloud Storage 的 Finalise/Create Event,即当文件上传到 GCS 存储桶中时,Cloud Function 必须触发 Cloud 数据流。

当我创建一个数据流管道(批处理)并执行该管道时,它会创建一个 Dataflow 管道模板并创建一个 Dataflow 作业。

但是当我在 Java 中创建云函数并上传文件时,状态只是说“ok”,但它不会触发数据流管道。

云功能

package com.example;

import com.example.Example.GCSEvent;
import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport;
import com.google.api.client.http.HttpRequestInitializer;
import com.google.api.client.http.HttpTransport;
import com.google.api.client.json.JsonFactory;
import com.google.api.client.json.jackson2.JacksonFactory;
import com.google.api.services.dataflow.Dataflow;
import com.google.api.services.dataflow.model.CreateJobFromTemplateRequest;
import com.google.api.services.dataflow.model.RuntimeEnvironment;
import com.google.auth.http.HttpCredentialsAdapter;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.cloud.functions.BackgroundFunction;
import com.google.cloud.functions.Context;

import java.io.IOException;
import java.security.GeneralSecurityException;
import java.util.HashMap;
import java.util.logging.Logger;

public class Example implements BackgroundFunction<GCSEvent> {
    private static final Logger …
Run Code Online (Sandbox Code Playgroud)

java google-cloud-storage google-cloud-platform google-cloud-dataflow google-cloud-functions

8
推荐指数
1
解决办法
1257
查看次数

当我尝试使用 AWS IAM 角色连接 HashiCorp Vault 时,如何修复“Vault location [kv/my-client-service] 无法解析:未找到”?

我已经使用 HashiCorp Vault 六个月了,我的所有秘密都来自配置服务。我正在使用spring.cloud.config.token连接我所有的客户端服务,但是当保险库令牌每 30 天左右过期时,问题就出现了。对于较低的环境,令牌到期是可以接受的,因为我们可以一次又一次地重新部署,但生产,我们不能重新部署。因此,决定使用 AWS IAM 角色,可以连接到保管库并且不会有任何过期。

我已关注此官方 链接,但在启动应用程序时遇到以下问题。

在此处输入图片说明

我已经用谷歌搜索了它,但没有得到一个有效的解决方案。

我在我的客户端服务 (my-client-service) 的 bootstrap.yml 文件中使用以下代码

引导程序.yml

spring:
  application:
    name: my-client-service
  cloud:
    config:
      enabled: true
      uri:  'https://localhost:8080' 
    vault:
      enabled: true
      uri: 'https://localhost:8090'
      port: 443
      scheme: https
      namespace: 'vault-namespace/aus'
      authentication: AWS_IAM
      fail-fast: true
      aws-iam:
        role: aus-vault-role
        aws-path: aws
      generic:
        enabled: true
        backend: kv
        profile-separator: '/'
        default-context: my-client-service
        application-name: my-client-service
      config:
        order: -1000
Run Code Online (Sandbox Code Playgroud)

Vault 身份验证 ARN 到 AWS

vault write auth/aws/config/sts/<account_number> sts_role=arn:aws:iam::<account_number>:role/role_name
Run Code Online (Sandbox Code Playgroud)

将 ARN 与保险柜策略相关联

我为同一个账户创建了一个 IAM 角色,该角色映射到一个 …

amazon-web-services amazon-iam spring-cloud hashicorp-vault spring-vault

7
推荐指数
1
解决办法
898
查看次数

如何使用运行 sonarqube 的终端命令排除声纳覆盖的文件?

我正在为一个应用程序编写通用代码,该应用程序应该支持多个国家/地区特定的更改,例如巴西和法国。

巴西有一些 Java 类不是法国所必需的。因此,为了运行声纳,我需要排除这些文件以进行声纳覆盖。另外,我需要排除 dtos、util 类。

我们通常使用标签排除 pom 文件中类的覆盖范围。但是我需要使用 mvn clean install 命令排除这些文件。

传统方法:

在此处输入图片说明

但我想排除终端中的 java 类,如下所示:

C:\Projects\web-application>mvn clean install -Dspring.profiles.active=dev -Dspring.profiles.country=brazil -Dsonar.coverage.exclusions=**/pom.xml,**/domain/dtos/**/*,**/domain/models/**/*,**/services/someClass.java
Run Code Online (Sandbox Code Playgroud)

Sonarqube 运行但无法排除文件。

java sonarqube

5
推荐指数
1
解决办法
163
查看次数