小编Sas*_*ota的帖子

Spring Boot中的spring boot starter test

我使用Spring Initializr生成了一个Spring Boot Web应用程序,使用嵌入式Tomcat + Thymeleaf模板引擎,并将package作为可执行JAR文件.

使用的技术:

Spring Boot 1.4.2.RELEASE,Spring 4.3.4.RELEASE,Thymeleaf 2.1.5.RELEASE,Tomcat Embed 8.5.6,Maven 3,Java 8.

现在我想用类实现一个Test SpringApplicationConfiguration,所以我导入了

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
Run Code Online (Sandbox Code Playgroud)

但即使我已多次更新项目,我也会收到此错误

The import org.springframework.boot.test.SpringApplicationConfiguration cannot be resolved
Run Code Online (Sandbox Code Playgroud)

我还尝试通过右键单击Eclipse中的pom.xml和'Maven Add Dependency'来添加依赖项,

mvn clean dependency:tree 依赖是存在的,但是做了mvn clean compile,mvn dependency:purge-local-repository 我得到了package org.springframework.test.annotation does not exist

[INFO] +- org.springframework.boot:spring-boot-starter-aop:jar:1.5.2.RELEASE:compile
[INFO] |  +- org.springframework.boot:spring-boot-starter:jar:1.5.2.RELEASE:compile
[INFO] |  |  +- org.springframework.boot:spring-boot-starter-logging:jar:1.5.2.RELEASE:compile
[INFO] |  |  |  +- ch.qos.logback:logback-classic:jar:1.1.11:compile
[INFO] |  |  |  |  \- ch.qos.logback:logback-core:jar:1.1.11:compile
[INFO] |  |  | …
Run Code Online (Sandbox Code Playgroud)

java spring spring-mvc spring-boot spring-boot-test

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

IntelliJ:自定义生成的测试方法的命名

如果我为一个让我们说getId()方法的类生成测试,那么也会调用相应的测试方法getId().

是否可以设置IntelliJ为自动生成的测试方法添加一些静态前缀?

例如:

getId() - > shouldGetId()

doStuff()- > shouldDoStuff()

java junit intellij-idea

4
推荐指数
1
解决办法
636
查看次数

MySQL基于列值的唯一约束

假设我有一个这样的表:

CREATE TABLE dept (
  id     VARCHAR(255) NOT NULL PRIMARY KEY,
  code   VARCHAR(255) NOT NULL,
  active BIT          NOT NULL,
  ...
);
Run Code Online (Sandbox Code Playgroud)

问题:

我想在列上添加唯一约束codeactive但仅当设置为true(仅应在活动记录中检查唯一性)时才应应用它。可以有许多带有active=false和相同的记录code,因此我不能对多列使用约束。

我尝试过的:

我在文档中没有找到任何参考文献证明这种约束是可能的,但我知道在其他数据库中使用基于函数的唯一索引是可能的。

当然,我可以编写一个触发器来检查每个添加/更新操作的不变量,但我希望有更有效的解决方案。

我正在使用 MySQL 5.7.15。

mysql sql constraints unique-constraint mysql-5.7

4
推荐指数
1
解决办法
3121
查看次数

如何在 TextView 中选择文本时覆盖“复制”、“共享”和“全选”选项

我有一个TextView用户可以选择文本的地方。默认情况下会出现以下选项:“复制”、“共享”和“全选”。我需要用自定义选项覆盖它们。但我找不到如何做到这一点。我浏览了文档和这篇不错的文章,但并不缺乏。这篇文章解释了如何在用户按下我不需要的三点按钮时扩展菜单。

问题:如何覆盖文本部分菜单中的默认“复制”、“共享”和“全选”选项?

这是我的观点:

<TextView
    android:id="@+id/transcript"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:scrollbars="vertical" />
Run Code Online (Sandbox Code Playgroud)

在java代码中我有:

transcript.setTextIsSelectable(true);
transcript.setFocusable(true);
transcript.setFocusableInTouchMode(true);
Run Code Online (Sandbox Code Playgroud)

android textview android-layout android-menu

4
推荐指数
1
解决办法
2080
查看次数

Spring:在加载之前检查类路径资源是否存在

我有一个代码,我需要检查类路径资源是否存在并应用一些操作。

File file = ResourceUtils.getFile("classpath:my-file.json");
if (file.exists()) {
    // do one thing
} else {
    // do something else
}
Run Code Online (Sandbox Code Playgroud)

问题: 如果资源不存在则ResourceUtils.getFile()抛出FileNotFoundException。同时我不想对代码流使用异常,我想检查资源是否存在。

问题:有没有办法使用 Spring 的 API 来检查资源是否存在?

为什么我需要用 Spring 来完成这个:因为如果没有 spring,我需要自己选择一个不方便的正确的类加载器。我需要有不同的代码才能使其在单元测试中工作。

java spring spring-boot

4
推荐指数
1
解决办法
6961
查看次数

如何从 IntelliJ IDEA 中推断类型的变量导航到 Kotlin 类型声明?

假设我有这样的代码:

val request = buildRequest()
Run Code Online (Sandbox Code Playgroud)

问题:我想查看类型request是什么并导航到它的声明。

我可以通过将变量悬停或使用来找出类型Ctrl+Shift+P,但我还没有找到一种简单的方法来导航到类型本身。command + click在这里不起作用。

问题:如何导航到类型被推断的变量的类型声明?

jetbrains-ide intellij-idea kotlin

4
推荐指数
1
解决办法
80
查看次数

ExoPlayer:控制前进和后退按钮的跳过间隔

我正在寻找一种方法来设置“前进”和“倒带”按钮的跳过间隔。默认情况下,按前进会跳过 15 秒的视频,但按后退只会跳过 5 秒。我想将两者都设置为 5 秒,但我找不到任何 API 来这样做。

问题:如何覆盖 ExoPlayer 2 中“前进”和“倒带”按钮的跳过间隔?

android exoplayer exoplayer2.x

3
推荐指数
1
解决办法
2263
查看次数

Docker:如何在 Debian jessie-slim 之上安装 OpenJDK JRE 12?

我正在尝试在debian:jessie-slim图像顶部安装 OpenJDK JRE 12 。

最后,我需要安装openjdk-12-jre-headless包。但是,我得到:

E: 'openjdk-12-jre-headless' 的值对 APT::Default-Release 无效,因为源中没有这样的版本

我尝试了不同的选择,但看起来我做错了什么。

我的 Dockerfile非常复杂,但是这个问题是可以重现的:

FROM debian:jessie-slim
RUN apt-get install -y --target-release openjdk-12-jre-headless
Run Code Online (Sandbox Code Playgroud)

java debian docker debian-jessie

3
推荐指数
1
解决办法
3001
查看次数

如何获取先科的ZoneId?

我需要从文件中解析时区,其中指定的区域如下:UTC、SAST 等。

问题:虽然ZoneId.of("UTC")效果很好,但我不能对 SAST 做同样的事情。

我明白了java.time.zone.ZoneRulesException: Unknown time-zone ID: SAST

问题:如何将“SAST”字符串转换为 Java 字符串ZoneId

我知道,每次收到它时我都可以用“GMT+2”替换“SAST”,但如果有更优雅的方式那就太好了。

java timezone java-8 java-time

3
推荐指数
1
解决办法
1489
查看次数

IntelliJ 插件开发:如何生成新的源文件

我正在开发一个插件,它将在打开的类内部和外部生成代码。

我扩展了GenerateMembersHandlerBase类来生成类的成员 - 它工作得很好。

现在我需要生成一个完整的类(新的源文件),它将放在我正在处理的类之外。

问题:我找不到任何允许我创建新 Java 源文件的 API。请提示我 API,或提示我IntelliJ IDEA 源代码中实现此类内容的位置。

更多上下文:假设我们有com.mycompany.User课。我正在实现一个插件,它将为它生成一个具有下一个格式的构造函数:

public User(UserInfo info) {
    //...
}
Run Code Online (Sandbox Code Playgroud)

并且UserInfo类需要在飞行中生成。所以在代码生成之后,我应该在类中有一个构造函数,User并为com.mycompany.UserInfo.

java jetbrains-ide intellij-idea intellij-plugin

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