小编CRI*_*ANZ的帖子

Kotlin 使用 slf4j 进行日志记录的最佳方式

我有一个使用 logback 的带有默认日志配置的 spring boot 项目。我一直使用这种方法在我的应用程序中进行日志记录:

logger.info("Get user paginated: filter {}",user)
Run Code Online (Sandbox Code Playgroud)

现在我正在学习 Kotlin 并且我正在阅读有关字符串模板的内容。如果我使用 $ 重写我的句子将是:

logger.info("Get user paginated: filter $user")
Run Code Online (Sandbox Code Playgroud)

哪个是使用 Spring Boot 登录 Kotlin 的更好方法?

logging slf4j kotlin spring-boot

7
推荐指数
2
解决办法
5235
查看次数

Github“拉取请求”关闭问题不起作用

我有一个拉取请求 ,我正在尝试删除此问题,包括拉取请求正文中的特殊关键字语法(例如“resolve #5”)。

github上的文档说:

很长一段时间以来,都可以通过提交来关闭问题,但有些问题比单个提交需要更多的工作才能关闭。这就是为什么您现在可以通过拉取请求关闭问题。您所要做的就是在 Pull 请求的正文中包含特殊的关键字语法(例如“fixes #5”)。

当 PR 合并到默认分支时,引用的问题将自动关闭。

在合并之前,您甚至会看到引用作为待处理的修复。

但是我在关闭问题的问题中没有信息“一旦拉取请求xxx合并到master中,这个问题就会关闭”,当我将此拉取请求合并到master中时,问题没有关闭。我的错误是哪一个?

git commit github pull-request

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

使用 jobLauncherTestUtils 进行 Spring 批量集成测试

我正在尝试为我的批处理项目编写集成测试。

我的集成测试定义:

https://github.com/cristianprofile/spring-batch-testing/blob/master/src/test/java/test/BatchApplicationTests.java

@RunWith(SpringRunner.class)
@SpringBootTest

/* @Autowired
private JobLauncherTestUtils jobLauncherTestUtils;*/

public class BatchApplicationTests {

private static final String EXPECTED_FILE = "src/test/resources/users.csv";
private static final String OUTPUT_FILE = "src/main/resources//users.csv";
private static final String EXPECTED_FILE2 = "src/test/resources/users2.csv";
private static final String OUTPUT_FILE2 = "src/main/resources//users2.csv";

@Test
public void contextLoads()  throws Exception{
    System.out.println("Fake test ");
//      JobExecution jobExecution = jobLauncherTestUtils.launchJob();
//        JobExecution jobExecution = jobLauncherTestUtils.launchStep("step1");
//      Assert.assertEquals("COMPLETED",    jobExecution.getExitStatus().getExitCode());
//
//
//       AssertFile.assertFileEquals(new FileSystemResource(EXPECTED_FILE),
//                new FileSystemResource(OUTPUT_FILE));
//
//        AssertFile.assertFileEquals(new FileSystemResource(EXPECTED_FILE2),
//                new FileSystemResource(OUTPUT_FILE2));

} …
Run Code Online (Sandbox Code Playgroud)

spring spring-batch spring-boot

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

Spring Boot 2转换持续时间java 8 application.properties

我需要通过application.properties 定义Duration(spring.redis.timeout)

我试图使用Spring引导文档中定义的一点:

Spring Boot为表示持续时间提供了专门的支持。如果公开java.time.Duration属性,则应用程序属性中的以下格式可用:

常规的长表示形式(除非@DurationUnit指定了a,否则使用毫秒作为默认单位)标准ISO-8601格式由java.util.Duration 值和单位耦合的可读性更高的格式(例如10s表示10秒)

当我使用spring.redis.timeout = 3s时,Spring Boot应用程序会抛出此异常:

无法将类型“ java.lang.String”的值转换为所需类型“ java.time.Duration”:找不到匹配的编辑器或转换策略

在最新的Spring Boot 2版本中,为application.properties中的Duration属性设置正确值的最佳方法是哪一种?

duration java-8 spring-boot

4
推荐指数
5
解决办法
9118
查看次数

Redis 客户端 Lettuce 命令超时与套接字超时

我们已经定义了 Lettuce 客户端连接工厂,以便能够连接到定义自定义套接字和命令超时的 Redis:

@Bean
LettuceConnectionFactory lettuceConnectionFactory() {

   final SocketOptions socketOptions = SocketOptions.builder().connectTimeout(socketTimeout).build();
   final ClientOptions clientOptions =
           ClientOptions.builder().socketOptions(socketOptions).build();

   LettuceClientConfiguration clientConfig = LettuceClientConfiguration.builder()
           .commandTimeout(redisCommandTimeout)
           .clientOptions(clientOptions).build();
   RedisStandaloneConfiguration serverConfig = new RedisStandaloneConfiguration(redisHost,
           redisPort);

   final LettuceConnectionFactory lettuceConnectionFactory = new LettuceConnectionFactory(serverConfig,
           clientConfig);
   lettuceConnectionFactory.setValidateConnection(true);
   return new LettuceConnectionFactory(serverConfig, clientConfig);
}
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

Lettuce 文档定义了默认值:

  • 默认套接字超时为 10 秒
  • 默认命令超时为 60 秒

如果 Redis 服务关闭,应用程序必须在 300 毫秒内收到超时。哪个值必须定义为最大值?

Github 示例项目:https : //github.com/cristianprofile/spring-data-redis-lettuce

timeout redis lettuce spring-data-redis

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