小编fud*_*udy的帖子

如何在 Spring-data-elasticsearch 中禁用页面查询

我使用spring-data-elasticsearch框架从elasticsearch服务器获取查询结果,java代码如下:

public void testQuery() {
    SearchQuery searchQuery = new NativeSearchQueryBuilder()
        .withFields("createDate","updateDate").withQuery(matchAllQuery()).withPageable(new PageRequest(0,Integer.MAX_VALUE)).build();
    List<Entity> list = template.queryForList(searchQuery, Entity.class);
    for (Entity e : list) {
        System.out.println(e.getCreateDate());
        System.out.println(e.getUpdateDate());
    }
}
Run Code Online (Sandbox Code Playgroud)

我在服务器中获取原始查询日志,如下所示:

{"from":0,"size":10,"query":{"match_all":{}},"fields":["createDate","updateDate"]}
Run Code Online (Sandbox Code Playgroud)

根据查询日志,spring-data-elasticsearch 会增加查询的大小限制。"from":0, "size":10, 我怎样才能避免它添加大小限制?

java elasticsearch spring-data-elasticsearch

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

Monit 是否支持多个相同格式的电子邮件收件人?

我使用 monit 来监控服务的状态,当服务关闭时,我想以相同的格式向多个收件人发送警报电子邮件。这是我的 monit 配置的一部分:

set mail-format { from: no-reply@gmail.com }
check host hostA with address hostA
  alert userA@gmail.com
  MAIL-FORMAT {     # use local format
     subject: redis is down on hostA
     message:   redis is down on hostA on port 6379

  Yours sincerely,
  monit
  }
  alert userB@gmail.com
  MAIL-FORMAT {     # use local format
     subject: redis is down on hostA
     message:   redis is down on hostA on port 6379

  Yours sincerely,
  monit
  }
  if failed port 6379 retry 3 then exec "/monit/scripts/myscripts.sh" …
Run Code Online (Sandbox Code Playgroud)

monit

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

在迭代时清除ConcurrentHashMap中的元素

这是我对ConcurrentHashMap的测试

@Test
public void testIt2() {
    Map<String, String> map = new ConcurrentHashMap<String, String>();
    map.put("2", "2");
    map.put("1", "1");
    for (Entry<String, String> entry : map.entrySet()) {
        map.clear();
        System.out.println(entry.getKey());
    }
}
Run Code Online (Sandbox Code Playgroud)

输出是:

1
2
Run Code Online (Sandbox Code Playgroud)

为什么?

java dictionary concurrenthashmap

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

如何在Java中使用Custom ClassLoader到新的Object

我想创建一个自定义ClassLoader来加载某些路径中的所有jar文件(例如/ home/custom/lib).

那么我希望每次使用newoperator创建一个Object时,它都会在该路径中的所有jar文件中搜索类,然后搜索parameter(-cp)定义的类路径.

可能吗?

例如,有一个jar文件 /home/custom/lib/a.jar

在主类

public class Main {
    public static void main(String[] args) {
        // do something here to use custom ClassLoader
        // here will search Car in /home/custom/lib/a.jar first then in java class path
        Car car = new Car(); 
    }
}
Run Code Online (Sandbox Code Playgroud)

java classloader

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

Spring Boot 组件 bean 验证 @Positive 不起作用,但 @NotNull 工作正常

我有一个由 spring 管理的服务,我在该服务上添加了 @Validated 注释(参考这篇文章),它告诉 spring 将为我们进行验证,我们甚至不需要手动验证它。

import org.springframework.stereotype.Component;
import org.springframework.validation.annotation.Validated;
import javax.validation.Valid;
@Component
@Validated
public class MyService {
    public void execute(@Valid MyRequest request) {
            //todo
    }
}
Run Code Online (Sandbox Code Playgroud)

MyRequest 是一个 DTO,将由 spring 验证

import lombok.Data;

import javax.validation.constraints.Positive;

@Data
public class MyRequest {
    @Positive(message = "id should be positive")
    private Long id;
}
Run Code Online (Sandbox Code Playgroud)

这是我的控制器,出于某种原因,我不想在控制器中进行验证。

@Controller
public class MainController {
    @Autowired
    private MyService service;
    @RequestMapping(value = "/execute", method = {GET, POST})
    @ResponseBody
    public MyResponse execute() {
        MyResponse res = new …
Run Code Online (Sandbox Code Playgroud)

java validation spring spring-boot

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

在Java中将字符串转换为时间戳

我们的客户会向我们发送请求,包括时间戳字符串喜欢: "2013-10-27T13:00:00.325234Z".我将用它来比较oracle数据库中的时间戳.

如何将上面的String转换为java.sql.Timestamp?

我可以将它转换为Date,但Date只有毫秒精度.

应该保持微秒和时区.提前致谢.

java

0
推荐指数
2
解决办法
9762
查看次数