小编gly*_*ing的帖子

MongoDB多久检查一次其索引“ expireAfterSeconds”?

我在本地使用一个单一实例MongoDB,并在Spring Boot存储库中,使用以下注释对文档类进行注释:

@Indexed(name = "deleteAt", expireAfterSeconds = 0)
private LocalDateTime deleteAt;
Run Code Online (Sandbox Code Playgroud)

正如我从此处的文档中读取的那样,文档应在指定的位置自动删除DateTime。它通常可以正常工作,但是当我频繁轮询同一文档时,我看到删除操作有所延迟。大多数文档被立即删除,但是在指定的删除时间之后,有些文档仍保留在数据库中长达30秒。

这让我想知道MongoDB是否运行调度程序来清理此类文档,如果可以的话,它多久运行一次?

java mongodb spring-data-mongodb

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

创建 http 响应作为 mockito 的返回值

我是 Mockito 测试的新手,正在测试 GET 请求。

我已经模拟了这个调用,但现在我需要返回,HttpResponse<Cars[]>因为这些值稍后会在 for 循环中使用。

如何创建一个HttpResponse包含Car对象数组的虚拟对象。

类中使用Get请求的方法CarProvider是:

public HttpResponse<Cars[]> getCars(String carId, String carname) {
    return Unirest.get(endpointUrl)
          .header("Accept", MediaType.APPLICATION_JSON)
          .queryString("carId",cardId)
          .queryString("carname",carname)
          .asObject(Cars[].class);
}
Run Code Online (Sandbox Code Playgroud)

CarsUsers在以下方法的另一个类中使用:

public List<Cars> getCars(String carId, String carname) {
  HttpResponse<Cars[]> response = carProvider.getCars(carId, carname);
  for(Cars car: response.getBody){
     //use car and do something
}
Run Code Online (Sandbox Code Playgroud)

我的测试方法如下:

public class TestClass {
    @Mock
    HttpResponse<Cars[]> httpresponse;
    @Mock
    CarsProvider carsProvider;

    @Mock
    CarsUser carsUser;

    @Test
    public void getCarsTest(){
     Mockito.when(carsUser.getCars(Matchers.anyString(), 
     Matchers.anyString())).thenReturn(getDummyCarsList());

     Mockito.when(carsProvider.getCars(Matchers.anyString(), 
     Matchers.anyString())).thenReturn(httpResponse);

     } …
Run Code Online (Sandbox Code Playgroud)

java rest junit httpresponse mockito

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

如何在 Intellij 中运行 Eclipse .launch 文件

我使用 Eclipse 开发了一个 Java/web 项目有一段时间了,我们有一些以 .launch 结尾的脚本。要启动的文件以以下两行开头:

> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
> <launchConfiguration
> type="org.eclipse.jdt.launching.localJavaApplication">
Run Code Online (Sandbox Code Playgroud)

现在我已经开始使用 IntelliJ 了吗?

eclipse intellij-idea

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

具有不同文件夹名称的 mongodump

有没有办法将 mongo 数据库转储到特定的文件夹名称?假设我有一个名为myDb的数据库

当我使用时:

mongodump --db myDb
Run Code Online (Sandbox Code Playgroud)

它生成一个转储文件夹,myDb其中包含一个文件夹

是否有可能得到类似的dump/mySpecifiedFolder东西mongodump

backup mongodb mongodump

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

mvn clean install 不起作用

        at org.eclipse.sisu.inject.LazyBeanEntry.getValue(LazyBeanEntry.java:81)

        at org.eclipse.sisu.plexus.LazyPlexusBean.getValue(LazyPlexusBean.java:5
1)
        at org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContai
ner.java:263)
        at org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContai
ner.java:255)
        at org.apache.maven.plugin.internal.DefaultMavenPluginManager.getConfigu
redMojo(DefaultMavenPluginManager.java:519)
        at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(Default
BuildPluginManager.java:121)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor
.java:208)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor
.java:154)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor
.java:146)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProje
ct(LifecycleModuleBuilder.java:117)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProje
ct(LifecycleModuleBuilder.java:81)
        at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThre
adedBuilder.build(SingleThreadedBuilder.java:51)
        at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(Lifecycl
eStarter.java:128)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:309)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:194)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:107)
        at org.apache.maven.cli.MavenCli.execute(MavenCli.java:993)
        at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:345)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:191)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Nativ
e Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Native
MethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(De
legatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:564)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Laun
cher.java:289)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.jav
a:229)
        at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(La
uncher.java:415)
        at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:
356)
Caused by: java.lang.ArrayIndexOutOfBoundsException: 1
        at org.codehaus.plexus.archiver.zip.AbstractZipArchiver.<clinit>(Abstrac …
Run Code Online (Sandbox Code Playgroud)

java heroku maven java-9

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

需要使用mockito测试apache poi excel

我编写了一个类来根据传递的数据创建工作簿。我现在正在编写模拟测试来测试我的方法。我不允许使用 powermock。以下是代码片段。

public class TalkDetailsToExcel extends AbstractXlsView {
    private static final ResourceBundle RESOURCE_BUNDLE = MessageResource.getResourceBundle();

    /**
     * Builds the {@link Workbook} containing {@link Talk} details and adds to the {@link Sheet}.
     *
     * @param model               the {@link Map} containing the {@link List} of {@link Talk}.
     * @param workbook            the Excel {@link Workbook} to which {@link Talk} needs to be added.
     * @param httpServletRequest  the {@link HttpServletRequest}
     * @param httpServletResponse the {@link HttpServletResponse}
     * @throws Exception          when adding talk details to …
Run Code Online (Sandbox Code Playgroud)

java junit spring mockito apache-poi

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

Mockito获取所有模拟对象

我想获取所有模拟对象的列表。使用早期版本的Mockito,我可以这样做:

List<Object> createdMocks = new LinkedList<Object>();
MockingProgress progress = new ThreadSafeMockingProgress();
progress.setListener(new CollectCreatedMocks(createdMocks));
Run Code Online (Sandbox Code Playgroud)

这些侦听器已在最新的2.8版Mockito中删除,还有其他替代方法吗?

java testing unit-testing mocking mockito

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

Mongo Java Driver 3.6.1 - 如何将 json 数组结构化字符串解析为 BasicDBList

当我使用 MongoDB 2.xx 时,我曾经(BasicDBList) JSON.parse("[]")将字符串数据解析为 Document 数组。但是最新的 MongoDB 驱动程序说这已被弃用,BasicDbObject.parse("")唯一的转换为BasicDBObject.

这是我之前在 2.xx Java 驱动程序中使用的一些代码示例

BasicDbList skuList = (BasicDBList) JSON.parse(skus);
Run Code Online (Sandbox Code Playgroud)

所以当我升级到 3.6.1 时,编译器说这已被弃用。并建议使用BasicDbObject.parse()

但这只接受 JSON 对象结构化的字符串......

{ "fruit": "apple"}
Run Code Online (Sandbox Code Playgroud)

...不是 JSON 数组格式的字符串。

所以,如果我有一个像"[\"SKU000001\", \"SKU0000002\", \"SKU0000003\"]"我如何转换为的字符串 BasicDBList

java deprecated mongodb mongo-java-driver jsonparser

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

如何从META-INF目录加载属性文件?

properties运行JAR最佳的人在执行中使用的文件属于其中是否正确META-INF?这个概念是正好与标准的目录结构指定Maven

假设需要这种结构,如何properties从中加载文件META-INF

thufir@doge:~/NetBeansProjects/json_parser$ 
thufir@doge:~/NetBeansProjects/json_parser$ java -jar build/libs/json_parser-all.jarAug 18, 2017 6:44:24 AM net.bounceme.doge.json.Main main
INFO: starting
Aug 18, 2017 6:44:24 AM net.bounceme.doge.json.Main run
INFO: actually
Aug 18, 2017 6:44:24 AM net.bounceme.doge.json.PropertiesReader tryGetProps
INFO: properties
Aug 18, 2017 6:44:24 AM net.bounceme.doge.json.PropertiesReader getProps
INFO: properties
Exception in thread "main" java.lang.NullPointerException
    at java.util.Properties$LineReader.readLine(Properties.java:434)
    at java.util.Properties.load0(Properties.java:353)
    at java.util.Properties.load(Properties.java:341)
    at net.bounceme.doge.json.PropertiesReader.getProps(PropertiesReader.java:26)
    at net.bounceme.doge.json.PropertiesReader.tryGetProps(PropertiesReader.java:16)
    at net.bounceme.doge.json.Main.run(Main.java:18)
    at net.bounceme.doge.json.Main.main(Main.java:12)
thufir@doge:~/NetBeansProjects/json_parser$ 
thufir@doge:~/NetBeansProjects/json_parser$ jar tf build/libs/json_parser-all.jarMETA-INF/ …
Run Code Online (Sandbox Code Playgroud)

java jar meta-inf gradle maven

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

Logback 多行模式 - 行分隔符后的文本

我正在为 Logback 配置日志。

XML 配置如下所示:

<configuration>
   <appender name="console" class="...">
     <encoder>
       <pattern>Message:%nText: %m</pattern>
     </encoder>
  </appender>
  ...
</configuration>
Run Code Online (Sandbox Code Playgroud)

这个想法是日志记录应该是多行的:

Message:
Text: [Message text here]
Run Code Online (Sandbox Code Playgroud)

但是当我运行应用程序时,出现异常:

ch.qos.logback.core.pattern.parser.Compiler@8dbdac1 中出现错误 - 没有为转换字 [nText] 注册转换类

因此,问题在于“%n”和“Text”字符串合并为一个字符串。

作为解决方法,我可以用空格将它们分开书写:

Message:%n Text: %m
Run Code Online (Sandbox Code Playgroud)

但在这种情况下,空格出现在日志中的“文本”之前

Message:
 Text:
Run Code Online (Sandbox Code Playgroud)

是否有一些解决方案(空字符串或类似的转义字符)?

谢谢。

xml logging logback

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