我有一个使用 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 的更好方法?
我有一个拉取请求 ,我正在尝试删除此问题,包括拉取请求正文中的特殊关键字语法(例如“resolve #5”)。
github上的文档说:
很长一段时间以来,都可以通过提交来关闭问题,但有些问题比单个提交需要更多的工作才能关闭。这就是为什么您现在可以通过拉取请求关闭问题。您所要做的就是在 Pull 请求的正文中包含特殊的关键字语法(例如“fixes #5”)。
当 PR 合并到默认分支时,引用的问题将自动关闭。
在合并之前,您甚至会看到引用作为待处理的修复。
但是我在关闭问题的问题中没有信息“一旦拉取请求xxx合并到master中,这个问题就会关闭”,当我将此拉取请求合并到master中时,问题没有关闭。我的错误是哪一个?
我正在尝试为我的批处理项目编写集成测试。
我的集成测试定义:
@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) 我需要通过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属性设置正确值的最佳方法是哪一种?
我们已经定义了 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 文档定义了默认值:
如果 Redis 服务关闭,应用程序必须在 300 毫秒内收到超时。哪个值必须定义为最大值?
Github 示例项目:https : //github.com/cristianprofile/spring-data-redis-lettuce
spring-boot ×3
commit ×1
duration ×1
git ×1
github ×1
java-8 ×1
kotlin ×1
lettuce ×1
logging ×1
pull-request ×1
redis ×1
slf4j ×1
spring ×1
spring-batch ×1
timeout ×1