小编Tho*_*ich的帖子

为什么新的Java 8 Date Time API没有纳秒精度?

Java 8中新的Date Time API的一个特性应该是纳秒精度.但是,当我将当前日期时间打印到控制台时,就像这样

DateTimeFormatter formatter = DateTimeFormatter
    .ofPattern("yyyy-MM-dd'T'HH:mm:ss,nnnnnnnnnZ");
System.out.println(OffsetDateTime.now().format(formatter)); 
Run Code Online (Sandbox Code Playgroud)

我只看到毫秒精度:2015-11-02T12:33:26,746000000 + 0100

操作系统似乎确实支持纳秒精度.当我通过终端打印当前日期时间

date -Ins
Run Code Online (Sandbox Code Playgroud)

我看到2015-11-02T12:33:26,746134417 + 0100

如何在Java中获得纳秒精度?我在Ubuntu 14.04 64位上运行Oracle Java 1.8.0_66

java java-8 java-time

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

Spring Boot 3 中的 Spring 安全

我目前正在将 REST 应用程序从 Spring Boot 2.7.5 迁移到 3.0.0-RC2。我希望除了 Open API URL 之外的所有内容都是安全的。在 Spring Boot 2.7.5 中,我们曾经这样做:

@Named
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

  @Override
  protected void configure(HttpSecurity http) throws Exception {
    http.authorizeRequests()
        .antMatchers("/openapi/openapi.yml").permitAll()
        .anyRequest().authenticated()
        .and()
        .httpBasic();
  }
}
Run Code Online (Sandbox Code Playgroud)

效果很好。在 Spring Boot 3 中,我不得不将其更改为

@Configuration
@EnableWebSecurity
public class WebSecurityConfig {

  @Bean
  public SecurityFilterChain configure(HttpSecurity http) throws Exception {
    http.authorizeHttpRequests((requests) -> requests
            .requestMatchers("/openapi/openapi.yml").permitAll()
            .anyRequest()
            .authenticated())
        .httpBasic();

    return http.build();
  }
}
Run Code Online (Sandbox Code Playgroud)

由于 WebSecurityConfigurerAdapter 已被删除。但它不起作用。Open API URL 也通过基本身份验证得到保护。我在升级代码时是否犯了错误,或者这可能是 Spring Boot 3 RC 2 …

spring-security spring-boot

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

标签 统计

java ×1

java-8 ×1

java-time ×1

spring-boot ×1

spring-security ×1