当前位置: 首页 > 知识库问答 >
问题:

Sonar抱怨Spring启动配置

能烨华
2023-03-14

我有这个类来启动SpringCloudConfig服务器。这是一个Spring Boot应用程序。

@SpringBootApplication
@EnableConfigServer
@EnableDiscoveryClient
public class ConfigServerApplication {

    public static void main( String[] args ) {

        SpringApplication.run( ConfigServerApplication.class, args );

    }

}

应用程序运行正常,我的所有单元测试都正常。然而,在我们的竹子管道中,它将初始一个声纳过程来分析代码。我们不断收到这些小警告,表示以下内容:

Utility classes should not have a public constructor

我知道这是一个小问题,但我的任务是从代码中删除这些内容。

理想情况下,您应该将类标记为final并提供一个私有构造函数,或者所有搜索都提供一个解决方案。但是,Spring配置类不能是最终的,也不能有私有构造函数。

有没有办法解决这个问题?

共有3个答案

东门俊民
2023-03-14

很容易测试:

@RunWith(SpringRunner.class)
@SpringBootTest
public class YourApplicationTest {

    @Test
    public void shouldLoadApplicationContext() {
    }

    @Test
    public void applicationTest() {
        YourApplication.main(new String[] {});
    }

}

现在声纳说,这是测试
(荣誉归于:罗伯特@https://stackoverflow.com/a/41775613/863403)

韩恺
2023-03-14

当然,调整声纳设置是一个更好的方法,但是如果你想取悦机器精灵,你可以简单地在你的类中添加一个非静态的虚拟函数,使它在声纳检查器的眼中“不实用”。

范浩荡
2023-03-14

恐怕这不是spring boot或spring cloud可以解决的问题。您需要将异常添加到声纳配置中。

 类似资料:
  • 当我尝试启动spring boot应用程序时,我遇到了以下错误。它甚至在我提供作业参数之前就给出了一个错误,该参数是作业的参数。 许多讨论建议使用资源作为来解决这个问题。但对我没用。提前谢了。

  • 问题内容: 我尝试在Ubuntu 12.04上安装Pycharm,并且得到以下信息: 正常工作该怎么办? 问题答案: 由于Oracle设置的限制,大多数较新的发行版不再包含Oracle(Sun)JDK。相反,它们与OpenSDK一起提供。尽管OpenSDK适用于大多数应用程序,但PyCharm似乎存在一些问题。 您必须手动安装Oracle(Sun)JDK,并确保它是默认JDK或在启动PyCharm

  • 我一直在尝试以多种不同的方式在windows上构建fltk,但最终我总是得到: 配置:错误:C编译器无法创建可执行文件(msys fltk/配置) 或 检查C编译器是否正常工作:C:/MinGW/bin/gcc.exe--已损坏(CMake-gui) 我用fltk 1.3.0和1.3.3试用过它,我甚至用过三个不同的MinGW发行版,GCC版本:。但它无法编译。以下是由生成的一些错误日志/配置文件

  • 第一张图片 第二图像 当我附上两张图片时,我在运行用groovy编写的spring boot gradle项目时遇到了问题。 我一打开项目,intellij就试图构建项目,但失败了,它说Gradle Sync失败了。 因为它在jdk设置中抱怨java home,所以我试图像我的intellij所期望的那样更改路径。但是一旦我更改它,它就告诉我它找不到android sdk位置。我不知道它为什么关心

  • 问题内容: 我使用SpringBoot进行REST Web服务开发,并使用SonarQube进行静态分析。 我的应用程序中有一些端点,它们的外观如下: SonarQube抱怨将ResponseEntity与通配符一起使用,并向我报告了一个 严重问题:“返回参数中不应使用通用通配符类型” 。 我想知道是否应该在SonarQube中禁用此验证,或者针对这些情况提出不同的返回类型。 你怎么看待这件事?

  • 问题内容: 在Swift 1.2的最新升级之后,我不知道如何将一行文本拆分为单词。我曾经这样做: 但这不再起作用,因为… 嗯,好吧,即使我可以上次建造?好吧,让我们尝试… 好吧,我能想到的所有其他版本都说: 让我们来听听它对新编程语言进行Beta测试!好极了! 有人知道1.2的正确秘密调味料吗? 问题答案: 在Swift 1.2中,似乎参数的顺序已更改: 或者,使用默认值: 谓词现在是最后一个参数