小编gly*_*ing的帖子

使用 maven-spring-boot-plugin 时将类路径添加到 SpringBoot 命令行启动

我正在尝试在运行 Spring Boot 应用程序时添加一个类路径,该应用程序使用以下命令运行

mvn spring-boot:run
Run Code Online (Sandbox Code Playgroud)

我目前可以使用插入到字段中的自定义参数将类路径文件夹添加到我的 Maven 测试中

但是,这种方法不适用于使用 mvn spring-boot:run 运行应用程序

java spring maven spring-boot

6
推荐指数
2
解决办法
9345
查看次数

$ text搜索可以执行部分​​匹配

好的,所以我对这种行为感到很困惑.它似乎不一致和奇怪,特别是因为我读过Mongo不应该支持全文搜索中的部分搜索术语.我使用的是Mongo DB社区服务器版本3.4.7.我正在从Mongo shell进行这些测试.

所以,我有一个分配了文本索引的Mongo DB集合.我创建了这样的索引:

db.submissions.createIndex({"$**":"text"})
Run Code Online (Sandbox Code Playgroud)

此集合中有一个文档包含以下两个值:

"克雷格"

"鲍勃博士".

我的目标是对包含多个匹配术语的文档进行文本搜索.

所以,这里是我运行的测试,以及它们不一致的输出:

单期,完整

db.submissions.find({"$text":{"$search":"\"Craig\""}})
Run Code Online (Sandbox Code Playgroud)

结果:获取包含此值的文档.

单期,部分

db.submissions.find({"$text":{"$search":"\"Crai\""}})
Run Code Online (Sandbox Code Playgroud)

结果:不返回任何内容,因为此部分搜索词与文档中的任何内容都不完全匹配.

多个条款,完整

db.submissions.find({"$text":{"$search":"\"Craig\" \"Dr. Bob\""}})
Run Code Online (Sandbox Code Playgroud)

结果:返回包含这两个术语的文档.

多个条款,一个部分

db.submissions.find({"$text":{"$search":"\"Craig\" \"Dr. Bo\""}})
Run Code Online (Sandbox Code Playgroud)

结果:尽管一个术语是部分术语,但返回包含两个术语的文档.文件中没有任何内容与"博士博士"相匹配

多个术语,两个部分

db.submissions.find({"$text":{"$search":"\"Crai\" \"Dr. Bo\""}})
Run Code Online (Sandbox Code Playgroud)

结果:返回包含两个术语的文档,尽管这两个术语都是部分和不完整的.文档中没有任何内容与"Crai"或"Bo博士"相匹配.

所以,这一切归结为:为什么?为什么会这样,当我使用只有一个值的部分术语进行文本搜索时,不会返回任何内容.当我用两个部分术语进行文本搜索时,我得到匹配结果?它看起来很奇怪而且不一致.

谢谢.

mongodb mongodb-query

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

删除文件后,Logback不会重新创建日志文件

我有一个在Tomcat服务器上运行的记录器应用程序.我在spring boot框架上使用logback.下面是我的logback.xml文件

<configuration debug="true">
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>/var/log/audit/audit.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- daily rollover -->
            <fileNamePattern>/var/log/audit/audit_%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy
                    class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <!-- or whenever the file size reaches 50MB -->
                <maxFileSize>100MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <!-- keep 30 days' worth of history -->
            <maxHistory>30</maxHistory>
        </rollingPolicy>
        <append>true</append>
        <encoder>
            <pattern>%msg%n</pattern>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>INFO</level>
        </filter>
    </appender>

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%msg%n</pattern>
        </encoder>
    </appender>

    <logger name="com.logger.rest">
        <appender-ref ref="FILE" />
    </logger>

    <root level="INFO">
        <appender-ref ref="STDOUT" />
    </root>
</configuration>
Run Code Online (Sandbox Code Playgroud)

我的应用程序正确记录到/var/log/audit/audit.log.但在某些时候我需要删除日志文件.删除后,我注意到在调用记录器应用程序时没有创建新的audit.log文件.只有当我重新启动记录器应用程序时才会生成新的日志文件.

是否有任何方法可以绕过应用程序重新启动,以便logback自动创建一个新的audit.log文件(在创建日志记录信息时),以防它被删除

java logging tomcat logback spring-boot

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

从 mongodump 获取 JSON 文件

我正在尝试使用以下命令导出我的 mongo 集合之一:

"C:\Program Files\MongoDB\Server\3.2\bin\mongodump" -h 127.0.0.1 --port 3001 -d meteor
Run Code Online (Sandbox Code Playgroud)

我有一个带有我的 db 集合的 BSON 文件,但我想要它在一个 JSON 文件中。

我该怎么做?

json export mongodb mongodump mongoexport

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

Spring MockMvc - 如何测试REST控制器的删除请求?

我需要测试我的控制器方法,包括删除方法.这是部分控制器代码:

@RestController
@RequestMapping("/api/foo")
public class FooController {

    @Autowired
    private FooService fooService;

    // other methods which works fine in tests

    @RequestMapping(path="/{id}", method = RequestMethod.DELETE)
    public void delete(@PathVariable Long id) {
        fooService.delete(id);
    }    
}
Run Code Online (Sandbox Code Playgroud)

这是我的测试:

@InjectMocks
private FooController fooController;

@Before
public void setUp() {
    this.mockMvc = MockMvcBuilders.standaloneSetup(fooController)
.setControllerAdvice(new ExceptionHandler()).alwaysExpect(MockMvcResultMatchers.content().contentType("application/json;charset=UTF-8")).build();
}

@Test
public void testFooDelete() throws Exception {
    this.mockMvc.perform(MockMvcRequestBuilders
            .delete("/api/foo")
            .param("id", "11")
            .contentType(MediaType.APPLICATION_JSON))
            .accept(MediaType.APPLICATION_JSON))
            .andExpect(status().isOk());
}
Run Code Online (Sandbox Code Playgroud)

因错误的状态代码而导致测试失败:

java.lang.AssertionError:预期状态:200实际:400

在控制台日志中我也发现了这个:

2017-12-11 20:11:01 [main] DEBUG o.s.t.w.s.TestDispatcherServlet - DispatcherServlet with name '' processing DELETE request for …
Run Code Online (Sandbox Code Playgroud)

java rest spring mockito spring-test-mvc

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

如何使用 Mockito 模拟 System.getProperty

我在 org.mockito.plugins.MockMaker 文件中添加了 mock-maker-inline 文本并将其放置在 test/resources/mockito-extensions

在我的测试用例中,我使用:

System system = mock(System.class);
when(system.getProperty("flag")).thenReturn("true");`
Run Code Online (Sandbox Code Playgroud)

但我收到以下异常:

org.mockito.exceptions.misusing.MissingMethodInvocationException: 
when() requires an argument which has to be 'a method call on a mock'.
For example:
    when(mock.getArticles()).thenReturn(articles);

Also, this error might show up because:
1. you stub either of: final/private/equals()/hashCode() methods.
   Those methods *cannot* be stubbed/verified.
   Mocking methods declared on non-public parent classes is not supported.
2. inside when() you don't call method on mock but on some other object.
Run Code Online (Sandbox Code Playgroud)

感谢任何建议

java unit-testing mockito

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

在Spring Boot执行器信息端点中显示构建时间戳

我正在使用Spring Boot执行器来获取我的应用程序的信息。

我在pom.xml中添加了Spring Boot执行器依赖项,并在属性文件中添加了以下几行:

info:
   app:
     name: @project.name@
     description: @project.description@
     version: @project.version@
Run Code Online (Sandbox Code Playgroud)

我从pom.xml获取值:项目的名称,描述和版本。我还想获得构建时间并将其显示在/info端点上。

有什么建议么?

我是否还应该为此更改pom.xml文件?我尝试使用:

info.app.build-time=@build-time@
Run Code Online (Sandbox Code Playgroud)

但这不起作用。

谢谢

java spring-mvc maven spring-boot-actuator

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

Logback配置在一行上有例外?

我的日志被提取,管道并合并到elasticsearch中.多线事件很难跟踪和诊断.

而不是使用收集器和正则表达式来组合单个记录中的异常行,是否有一种方法可以使用logback配置Exception堆栈跟踪放在一行上?

java logging logback slf4j

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

JSoup元素和JSoup节点之间的区别

谁能解释一下JSoup中提供的Element对象和Node对象之间的区别?

在哪种情况/条件下最好使用哪种方法。

java jsoup

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

如何在java中的mockito中为Map对象创建参数捕获器?

如何为 Map 创建参数捕获器?

我有遵循以下模式的代码:

import java.util.HashMap;
import java.util.Map;

public class CompoundClass {

   public CompoundClass (String a, String b){
       this.a = a;
       this.b = b;
   }

   public String a;
   public String b;
}

public class SubClass {
    public void doSomeThingSubClass(Map<String, CompoundClass> mapSb) {
        ...
    }
}

public class Example {

    public SubClass sb;

    public Example(SubClass sb) {
        this.sb = sb;
    }

    public void doSomeThing () {
        Map<String, CompoundClass> mapSb = new HashMap<>();
        mapSb.put("x", new CompoundClass("aa","bb"));
        sb.doSomeThingSubClass(mapSb);
    }
}
Run Code Online (Sandbox Code Playgroud)

我想测试方法 doSomethingSubClass(mapSb) 是否被调用,因此我需要能够检查它被调用的参数。为此,我进行了以下单元测试: …

java junit mocking mockito

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