网易首页 > 网易号 > 正文 申请入驻

Spring Boot 3.4发布:新增结构化日志记录、扩展虚拟线程支持……

0
分享至

从 Spring Boot 3.3 升级 RestClient 和 RestTemplate

已添加对自动配置RestClientRestTemplate以使用 Reactor Netty 的HttpClient或 JDK 的HttpClient的支持。按优先顺序,现在支持的客户端如下:

  • Apache HTTP Components(HttpComponentsClientHttpRequestFactory

  • Jetty Client (JettyClientHttpRequestFactory

  • Reactor NettyHttpClientReactorClientHttpRequestFactory

  • JDKHttpClientJdkClientHttpRequestFactory

  • Simple JDKHttpURLConnectionSimpleClientHttpRequestFactory

需要注意的是,如果类路径上没有 HTTP Client 库,就可能会使用JdkClientHttpRequestFactory,而之前使用的是SimpleClientHttpRequestFactory。可以通过设置spring.http.client.factory来选择特定的客户端。支持的值包括http-componentsjettyreactorjdksimple

默认情况下,所有五个客户端都会自动跟随重定向。要禁用此行为,可将spring.http.client.redirects设置为dont-follow

Apache HTTP Components 和 Envoy

Apache HTTP Components(组件)更改了HttpClient中有关 HTTP/1.1 TLS 升级的默认设置。大多数代理服务器都能顺利处理升级,但 Envoy 或 Istio 可能会遇到问题。

如果需要恢复以前的行为,可以使用新的ClientHttpRequestFactoryBuilder定义一个HttpComponentsClientHttpRequestFactoryBuilder并应用以下自定义设置:

@Bean
public HttpComponentsClientHttpRequestFactoryBuilder httpComponentsClientHttpRequestFactoryBuilder() {
    return ClientHttpRequestFactoryBuilder.httpComponents()
            .withDefaultRequestConfigManagerCustomizer((builder) -> builder.setProtocolUpgradeEnabled(false));
}
配置 Bean 的属性验证

在之前的版本中,当使用@Validated注解的@ConfigurationProperties类通过诸如 Hibernate Validator 这样的 Bean Validation 实现进行验证时,会在绑定时对嵌套属性进行验证,而不管是否使用了@Valid。在 Spring Boot 3.4 版本中,现在验证遵循 Bean Validation 规范的行为。验证是从@ConfigurationProperties注解的类开始进行的,只有在相应字段使用@Valid注解时,验证才会级联到嵌套属性。

升级时,检查带有 Bean 验证约束的@ConfigurationProperties类。在需要验证层级联嵌套属性的地方添加@Valid

基于 Bean 的条件

@ConditionalOnBean@ConditionalOnMissingBean@Bean方法上使用时的行为发生了变化,当设置了注解属性时。与以前一样,这两个条件都将使用@Bean方法的返回类型作为要匹配的类型的默认值。在以前,如果设置了nametypevalue,则不会使用此默认值。从 Spring Boot 3.4 开始,如果设置了annotation(注解),也不会使用此默认值。要恢复先前的行为,请同时指定一个value(值),该值是@Bean方法的返回类型,以及annotation(注解)。

优雅停机

嵌入式 Web 服务器(Jetty、Rector Netty、Tomcat 或 Undertow)的优雅关机现在已默认启用。如果需要恢复以前的行为,可将server.shutdown设置为immediate

用于构建 OCI 镜像的 Paketo Tiny Builder

使用 Mavenspring-boot:build-imageGoal 或 GradlebootBuildImageTask 为 JVM 应用构建 OCI 镜像时使用的默认 Cloud Native Buildpacks Builder 已从paketobuildpacks/builder-jammy-base更改为paketobuildpacks/builder-jammy-java-tiny。这将使镜像更小。tinyBuilder 不包含 shell,因此可能不适用于需要启动脚本来运行程序的应用。有关自定义 Builder 的信息,请参阅 Maven 或 Gradle 文档。

Testcontainer 和动态属性

通过注入DynamicPropertyRegistry来定义动态属性的支持已被弃用,现在尝试这样做将默认失败。与其注入DynamicPropertyRegistry,不如实现一个单独的@Bean方法来返回DynamicPropertyRegistrar。这个单独的 Bean 方法应注入将从中获取属性值的容器。这样可以解决一些容器生命周期问题,并确保在使用属性之前,已经启动了获取属性值的容器。

如果希望继续注入DynamicPropertyRegistry(可能会遇到上述生命周期问题),可将spring.testcontainers.dynamic-property-registry-injection设置为warnallow。前者将记录警告日志,同时允许使用注入的DynamicPropertyRegistry。后者将默许使用注入的DynamicPropertyRegistry,完全恢复 Spring Boot 3.3 的行为。

@AutoConfigureTestDatabase 和容器

@AutoConfigureTestDatabase注解现在会尝试检测数据库是否来自容器。如果要将注解用于容器数据库,则无需再添加replace=Replace.NONE

如果需要恢复到旧的行为,可在注解中设置replace=Replace.AUTO_CONFIGURED

控制对 Actuator 端点的访问

对启用和禁用端点的支持进行了重新设计,用更精细的访问模型取代了原来提供的 on/off(开/关)支持。除了禁用端点(none权限)和完全启用端点(unrestricted权限)外,新模型还支持只允许read-only(只读)访问端点操作。

以下属性已被弃用:

  • management.endpoints.enabled-by-default

  • management.endpoint. .enabled

替代属性为:

  • management.endpoints.access.default

  • management.endpoint. .access

同样,@Endpoint上的enableByDefault属性已被弃用,取而代之的是一个新的defaultAccess属性。

作为这些更改的一部分,无论使用@ConditionalOnEnabledEndpoint与否,默认启用现在都是一致应用的。如果在升级时失去了对端点的访问权限,可将management.endpoint. .access 设置为read-onlyunrestricted,或将management.endpoint. .enabled 设置为true,以使端点再次可访问。

此外,还引入了一个新属性,允许运维控制允许访问 Actuator 端点的级别:

  • management.endpoints.access.max-permitted

此属性限制了可能已为端点配置的任何访问权限。例如,如果management.endpoints.access.max-permitted设置为read-only,而management.endpoint.loggers.access设置为unrestricted,则只允许对 loggers 端点进行只读访问。

暴露 Cloud Foundry ConditionalOnAvailableEndpoint

@ConditionalOnAvailableEndpoint一起使用的EndpointExposure.CLOUD_FOUNDRY枚举值已被弃用,转而使用EndpointExposure.WEB。典型的 Spring Boot 应用可能不会受到此更改的影响,但是,如果你有自定义的 Cloud Foundry 特定 Actuator 端点 bean,则应更新你的条件以使用EndpointExposure.WEB

HtmlUnit 4.3

HtmlUnit 已升级至 4.3。升级后,依赖坐标从net.sourceforge.htmlunit:htmlunit变为org.htmlunit:htmlunitpackage名称从com.gargoylesoftware.htmlunit. 变为org.htmlunit。升级时,请相应更新构建配置和import

Selenium HtmlUnit 4.22

Selenium HtmlUnit 已更新至 4.22。升级后,依赖坐标从org.seleniumhq.selenium:htmlunit-driver变为org.seleniumhq.selenium:htmlunit3-driver。升级时,请相应更新你的构建配置。

WebJars Locator 整合

为了获得更快的启动时间和更高效的 WebJars 资源解析(参考这里),你需要更新pom.xml/build.gradle以依赖org.webjars:webjars-locator-lite而不是org.webjars:webjars-locator-core(这两个依赖项都由 Spring Boot 管理)。注意,Spring 中的org.webjars:webjars-locator-core支持现已过时,并将在未来版本中移除。请参阅有关此功能的 参考文档 部分。

删除了 OkHttp 的依赖管理

Spring Boot 不再依赖 OkHttp,因此不再管理其版本。如果你的应用依赖于 OkHttp,请更新构建,以使用符合需求的 OkHttp 版本。

Spring Boot 3.2 中的弃用

Spring Boot 3.2 中被弃用并标记为将在 3.4 中移除的类、方法和属性已在此版本中移除。请在升级前确保没有调用已废弃的方法。

最低要求的变更 Gradle

不再支持 Gradle 7.5、8.0、8.1、8.2 和 8.3。现在需要 Gradle 7.x(7.6.4 或更高版本)或 Gradle 8.x(8.4 或更高版本)。

最新的和值得关注的地方

你可以查看 配置更改日志,了解配置更改的完整概览。

结构化日志记录

通过对 Elastic Common Schema(ecs)、Graylog Extended Log Format (gelf) 和 Logstash(logstash)的内置支持,引入了对结构化日志的支持。要启用结构化文件日志记录,可将logging.structured.format.file设置为ecselflogstash。同样,要启用结构化控制台日志,可将logging.structured.format.console设置为相应的值。

要进一步了解 Spring Boot 对结构化日志的支持,包括如何定义自定义格式,请参阅 参考文档。

@FallbackBean

@ConditionalOnSingleCandidate现在支持@FallbackBean。如果有单个 Primary Bean,条件就会匹配;如果没有 Primary Bean,如果有单个非 Fallback Bean,条件也会匹配。

定义额外 Bean

在类型匹配时,基于 Bean 的条件现在会忽略任何非默认候选 Bean。通过声明 Bean 不是默认候选(使用@Bean(defaultCandidate=false)),现在可以定义自动配置类型的 Bean,而不会导致相同类型的自动配置 Bean Back Off。这减少了在同一应用中使用 两个DataSourceBean 或 两个EntityManagerFactoryBean 时所需的配置。

ClientHttpRequestFactory Builder

新增的ClientHttpRequestFactoryBuilder接口可让你为特定技术构建ClientHttpRequestFactory实例。Builder 允许对底层组件进行细粒度定制,并以一致的方式应用通用设置。

使用接口的静态工厂方法,可为特定库创建以下 Builder:

  • Apache HTTP Components (ClientHttpRequestFactoryBuilder.httpComponents()

  • Jetty Client (ClientHttpRequestFactoryBuilder.jetty()

  • Reactor NettyHttpClientClientHttpRequestFactoryBuilder.reactor()

  • JDKHttpClientClientHttpRequestFactoryBuilder.jdk()

  • Simple JDKHttpURLConnectionClientHttpRequestFactoryBuilder.simple()

更多详情,包括如何使用配置属性应用常用设置,请参阅更新的 参考文档。

可观测性的改进 应用分组

新的spring.application.group属性可用于将应用分组,例如,如果它们都属于某个业务单元或一个更大的应用调度。设置该属性后,日志信息中也会包含该属性。可以使用logging.include-application.group属性控制这一行为。Application Group 也会自动添加到 OpenTelemetryResource中。

OTLP

现在可以通过 gRPC 传输发送 OTLP Span。为此,请将新的配置属性management.otlp.tracing.transport设置为grpc。该属性默认为http。服务连接支持也已添加。

management.otlp.logs下的新属性可用于自动配置OpenTelemetryOtlpHttpLogRecordExporterSdkLoggerProvider

可观测性的其他更新

ProcessInfoContributor现在还能显示有关堆和非堆使用情况的内存信息。

新的management.otlp.tracing.export.enabledmanagement.wavefront.tracing.export.enabledmanagement.zipkin.tracing.export.enabled属性现在可用于更精细地启用或禁用 Trace 导出。

AssertJ 支持 MockMvc

当 AssertJ 位于 classpath 上时,MockMvcTester会自动配置。MockMvcTester可让你使用 Fluent 风格的 API 来定义请求和断言。它可以在任何MockMvc可以使用的地方进行注入。

有关详细信息,请参阅 Spring Framework 参考文档中的 专门章节。

Spring Pulsar

现在提供了配置属性用于配置默认的租户和命名空间。当使用未完全限定的 Topic URL 来消费或生产消息时,默认值将应用。你可以使用spring.pulsar.defaults.topic.tenantspring.pulsar.defaults.topic.namespace配置属性进行配置,或者定义自己的PulsarTopicBuilderBean。设置spring.pulsar.defaults.topic.enabled=false可禁用默认值。

新增了PulsarContainerFactoryCustomizer接口,以支持对自动配置的PulsarContainerFactory进行自定义。

spring.pulsar.consumer.subscription.name配置属性现在适用于自动配置的 Pulsar 监听器容器。

引入了两个新的配置属性,用于配置 Pulsar 客户端的并发性:

  • spring.pulsar.client.threads.io控制用于处理 Broker 连接的线程数量。

  • spring.pulsar.client.threads.listener控制用于消息监听的线程数。

最后,新的spring.pulsar.listener.concurrency属性可用于控制自动配置的 Pulsar 消息监听器容器的并发性。

Couchbase 认证

客户端证书(Client Certificate)现在可用于验证 Couchbase 群集,以替代基本的用户名和密码验证。更多详情,请参阅 参考文档。

FreeMarker

自动配置 FreeMarker 的配置对象所使用的 FreeMarker 变量现在可以自定义。为此,请定义一个或多个FreeMarkerVariablesCustomizer类型的 Bean。这些 Bean 将根据其定义的顺序(如果有)被调用。

通过 ActiveMQ Classic 支持嵌入式 Broker

现在 ActiveMQ Classic 再次支持嵌入式代理,自动配置已更新以支持该功能。

注意,与 Spring Boot 2.7.x 不同,ActiveMQ Starter 仅支持客户端。要使用嵌入式 Broker,应在应用中添加org.apache.activemq:activemq-broker

配置元数据

注解处理器(Annotation Processor)现在可以检测到Enum的默认值。如果你手动添加了元数据以提供自定义属性的值,请务必将其删除。

废弃和替换自动配置类

为了使自动配置的演进更加容易,我们引入了对自动配置类的废弃和替换的支持。可在新的META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.replacements文件中声明替换。要了解更多信息,请参阅 参考文档。

虚拟线程

如果启用了虚拟线程,以下组件将使用虚拟线程:

  • OtlpMeterRegistry

  • Undertow Web 服务器

镜像构建的改进

Spring Boot 现在默认使用paketobuildpacks/builder-jammy-java-tiny。该 Builder 开箱即支持 ARM 和 x64 平台。

Maven 和 Gradle 构建 OCI 镜像的插件中新增了一个trustBuilder选项。此选项控制 CNB 生命周期的调用方式,在使用来自不受信任来源的 Builder 时提供了改进的安全性。默认情况下,来自 Paketo 项目、Heroku 和 Google 的构建器是可信任的。有关详细信息,请参阅 Maven 或 Gradle 文档。

Maven 和 Gradle 构建 OCI 镜像的插件中新增了一个imagePlatform选项。此选项可用于指定任何 CNB Builder、运行时和 Buildpack 镜像的操作系统和架构,以便运行 CNB Builder。当主机平台支持模拟其他操作系统/架构(例如,在使用 Apple 芯片的 Mac 上使用 Rosetta 模拟 ARM 主机上的 AMD 架构)时,可以使用此选项为与主机平台的操作系统和架构不同的操作系统和架构构建镜像。有关更多信息,请参阅 Maven 或 Gradle 文档。

Docker Compose 的改进

Docker Compose 现在支持多个 Docker Compose 配置文件。

命令行参数

新属性spring.docker.compose.start.argumentsspring.docker.compose.stop.arguments可用于指定启动和停止服务时传递给 Docker Compose 子命令的附加命令行参数。新增的spring.docker.compose.arguments属性可将参数传递给 Docker Compose。

支持的更新

  • 现在 支持 PostgresPOSTGRES_HOST_AUTH_METHOD=trust环境变量。

  • 新增了对 Redis Stack 和 Redis Stack Server 的支持,分别使用redis/redis-stackredis/redis-stack-server容器镜像。

  • 通过grafana/otel-lgtm容器镜像新增了对 Grafana LGTM 的支持。

  • 新增了对 Hazelcast 的支持(使用HazelcastConnectionDetails)。

  • 新增了对 OTLP 日志的支持。

Testcontainers 改进
  • 添加了对org.testcontainers.kafka.KafkaContainer的支持。

  • 使用redis/redis-stackredis/redis-stack-server容器镜像,添加了对 Redis Stack 和 Redis Stack Server 的支持。

  • 添加了对org.testcontainers.grafana.LgtmStackContainer的支持。

  • 添加了对 Hazelcast 的支持(使用HazelcastConnectionDetails)。

  • 新增了对 OTLP 日志的支持。

  • 添加了对RedisContainer的支持。

Actuator 可插拔的 Actuator Exposer

现在可以通过可插拔的方式扩展 Spring Boot 以暴露 Actuator 端点。新的EndpointExposureOutcomeContributor接口可用于影响@ConditionalOnAvailableEndpoint条件。

与现有的 Cloud Foundry 支持类似,该扩展将使我们更容易提供额外的平台集成。

SSL 信息和健康检查

如果你使用 SSL Bundle,/actuator/info下现在有一个新的端点可以显示 SSL 信息(有效日期、签发者、主题等)。该端点还会显示即将过期的证书,以提醒你需要尽快更换。新的配置属性名为management.health.ssl.certificate-validity-warning-threshold,用于配置阈值。

还新增了 SSL 证书监控健康检查。如果证书无效,会将状态设置为OUT_OF_SERVICE

/actuator/scheduledtasks端点中的其他信息

/scheduledtasksActuator 端点 现在可公开有关定时调度任务的其他元数据,如 “下一次计划执行时间” 和 “上一次执行时间、状态和异常”。

依赖升级

Spring Boot 3.4 迁移到多个 Spring 项目的新版本:

  • Spring AMQP 3.2

  • Spring Authorization Server 1.4

  • Spring Batch 5.2

  • Spring Data 2024.1

  • Spring Framework 6.2

  • Spring HATEOAS 2.4

  • Spring Integration 6.4

  • Spring Kafka 3.3

  • Spring Pulsar 1.2

  • Spring Security 6.4

  • Spring Session 3.4

此外,还更新了许多第三方依赖,其中比较值得注意的有以下几项:

  • Apache Http Client 5.4

  • AssertJ 3.26

  • Artemis 2.37

  • Elasticsearch Client 8.15

  • Flyway 10.20

  • Gson 2.11

  • Hibernate 6.6

  • HtmlUnit 4.5.0

  • JUnit Jupiter 5.11

  • Jackson 2.18.0

  • Jedis 5.2

  • Kafka 3.8

  • Lettuce 6.4

  • Liquibase 4.29

  • Log4j 2.24

  • HtmlUnit 4.3

  • MariaDB 3.4

  • Micrometer 1.14

  • Micrometer Tracing 1.4

  • Mockito 5.13

  • MongoDB 5.2.0

  • MySQL 9.1

  • OpenTelemetry 1.41

  • Oracle Database 23.4

  • R2DBC MySQL 1.3

  • Rabbit AMQP Client 5.22

  • Rabbit Stream Client 0.18.0

  • Reactor 2024.0

  • Selenium 4.25

  • Testcontainers 1.20.3

  • XMLUnit 2.10

其他

除上述更改外,还有许多细微的调整和改进,包括:

  • 现在可以使用Customizer Bean 在使用 Liquibase 之前对其进行自定义了。

  • 现在可以通过定义JCachePropertiesCustomizerBean 来自定义用于创建 JCacheCacheManager的属性。

  • 现在可以通过定义一个名为viewNameTranslator的 Bean 来定制 Spring MVC 使用的RequestToViewNameTranslator

  • 现在可以使用LettuceClientOptionsBuilderCustomizerBean 来定制 Lettuce 的 ClientOptions。要对整个LettuceClientConfiguration进行更广泛的配置,请继续使用LettuceClientConfigurationBuilderCustomizer

  • 新的 CustomizerProxyConnectionFactoryCustomizer可用于定制 R2DBCProxyConnectionFactory

  • 如果发生 Spring Security 注销(Logout),现在会发布审计事件。

  • 现在可使用新属性spring.mail.ssl.*配置JavaMailSender上的 TLS 与 SSL Bundle。

  • GSON 的严格程度可使用新的spring.gson.strictness属性进行配置。

  • 现在可以在 JavaBean 风格配置属性的字段上使用@Name来自定义其名称。

  • 从其他DataSource派生时,如果源数据源的 URL 没有公开驱动类名,DataSourceBuilder现在可以使用源数据源的 URL 确定驱动类名。

  • 现在,Cloud Foundry 平台可自动启用 有效性和就绪性健康探针(Liveness and Readiness health probes)。

  • 新属性spring.application.version可用于读取和设置应用版本。该属性的默认值取自 manifest 的Implementation-Version

  • 自动配置的EntityManagerFactoryBuilder也定义了原生(如 Hibernate)属性。

  • 即使未使用@EnableScheduling,Spring Integration 的TaskScheduler现在也能感知虚拟线程。

  • @ConditionalOnAvailableEndpoint现在为端点提供了一个value别名。

  • 新增了用于配置 Spring Data Web 序列化模式的配置属性spring.data.web.pageable.serialization-mode

  • 使用SpringApplication.from(...)语法时,现在可以指定要激活的额外 Profile。

  • Spring Boot 插件不再在buildpack环境中设置BP_NATIVE_IMAGE: true

  • 已注册的@ConfigurationPropertiesbean 现在尊重@DependsOn@Description@Fallback@Lazy@Primary@Scope@Role注解。

  • 结构化日志现在支持 Log4j2 的MultiFormatStringBuilderFormattable

  • 新增了一个配置属性spring.jms.listener.max-messages-per-task,用于配置监听器在一个任务中处理的消息的最大数量。

  • 默认安全配置现在公开与其他路径映射的健康组(Health Group)。此外,两个EndpointRequest类现在都提供toAdditionalPaths(...)方法。

  • Session cookie 的partitioned属性现在可以通过属性进行设置。

  • 新增了server.jetty.max-form-keys属性,用于自定义 Jetty 的最大表单 Key 值。

  • 新增了management.otlp.logging.connect-timeoutmanagement.otlp.tracing.connect-timeout属性,用于配置与 OTLP Collector 的连接超时。

  • 通过 OTLP 传输日志时,新增了对 gRPC 传输的支持。

  • 现在在容器中绑定用于构建过程中的 buildpacks 使用的目录时会显示警告。

  • 在使用--enable-sbom=sbom构建原生镜像时,现在会自动检测 SBOM。

  • DatabaseDriver枚举现在支持 ClickHouse JDBC 驱动。

  • 新属性management.logging.export.enabledmanagement.otlp.logging.export.enabled可用于禁用日志导出。

  • Spring Batch 使用的TaskExecutor可通过定义注解为@BatchTaskExectuorTaskExecutorBean 进行自定义。

  • Spring Session 自动配置现在支持响应式 Web 应用中的indexedRepository 类型。

  • 如果未配置池暂停(Pool Suspension)并创建了检查点(Checkpoint),HikariCheckpointRestoreLifecycle将记录一个警告。

Spring Boot 3.4 中的弃用
  • spring.gson.lenient替换为spring.gson.strictness

  • @MockBean@SpyBean分别取代 Spring Framework 的@MockitoBeanMockitoSpyBean

  • org.springframework.boot.ResourceBanner#getApplicationVersion(Class )改用spring.application.version属性。

  • org.springframework.boot.SpringApplication#logStartupInfo(boolean)替换为org.springframework.boot.SpringApplication#logStartupInfo(ConfigurationApplicationContext)

  • org.springframework.boot.logging.logback.ApplicationNameConverter替换为org.springframework.boot.logging.logback.EnclosedInSquareBracketsConverter

  • org.springframework.boot.actuate.autoconfigure.endpoint.expose.EndpointExposure#CLOUD_FOUNDRY替换为org.springframework.boot.actuate.autoconfigure.endpoint.expose.EndpointExposure#WEB

  • org.springframework.boot.actuate.autoconfigure.tracing.otlp.OtlpTracingConnectionDetails#getUrl()替换为getUrl(Transport)

  • org.springframework.boot.actuate.autoconfigure.tracing.OpenTelemetryAutoConfiguration替换为org.springframework.boot.actuate.autoconfigure.tracing.OpenTelemetryTracingAutoConfiguration

  • OtlpAutoConfiguration已取代OtlpTracingAutoConfiguration

  • management.endpoints.enabled-by-defaultmanagement.endpoint. .enabled 分别取代management.endpoints.access.defaultmanagement.endpoint. .access

  • @Endpoint上的enableByDefault替换为defaultAccess

本文完,谢谢阅读。

Spring Boot 3.4.0公告
https://spring.io/blog/2024/11/21/spring-boot-3-4-0-available-now

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
绝了!复旦女生宋思瑶的一句话,让台湾黑熊学院沈伯洋气得吐血!

绝了!复旦女生宋思瑶的一句话,让台湾黑熊学院沈伯洋气得吐血!

青青子衿
2024-12-03 06:49:41
央行行长潘功胜最新发声 继续坚持支持性的货币政策 降低企业和居民综合融资成本

央行行长潘功胜最新发声 继续坚持支持性的货币政策 降低企业和居民综合融资成本

每日经济新闻
2024-12-02 20:57:03
热话丨香港茅台降价1000元!港人北上倒卖赚15万差价!

热话丨香港茅台降价1000元!港人北上倒卖赚15万差价!

港漂圈
2024-12-02 19:45:42
3-1,穆帅双手举拳蹦跳庆祝:率土超豪门5连胜,追到仅差榜首3分

3-1,穆帅双手举拳蹦跳庆祝:率土超豪门5连胜,追到仅差榜首3分

侧身凌空斩
2024-12-03 03:03:22
爆红4年,再看丁真如今简直判若两人,当初他不进娱乐圈是正确的

爆红4年,再看丁真如今简直判若两人,当初他不进娱乐圈是正确的

柴叔带你看电影
2024-12-02 16:44:25
穿着一般,不娇不艳

穿着一般,不娇不艳

白宸侃片
2024-12-03 13:39:53
冯绍峰不惧狗仔爆料,大方牵手新女友露面,网传赵丽颖也有新恋情

冯绍峰不惧狗仔爆料,大方牵手新女友露面,网传赵丽颖也有新恋情

七阿姨爱八卦
2024-12-02 16:47:01
安赛龙:因处理左脚伤势,我将退出杭州世界羽联总决赛

安赛龙:因处理左脚伤势,我将退出杭州世界羽联总决赛

直播吧
2024-12-03 17:39:12
一味中药,几乎无坚不摧,结石、增生、肌瘤、囊肿,皆可调

一味中药,几乎无坚不摧,结石、增生、肌瘤、囊肿,皆可调

环京快爆
2024-12-03 16:38:48
10助+11助+13助!联盟第1!这就是马刺给他1100万美金合同的原因

10助+11助+13助!联盟第1!这就是马刺给他1100万美金合同的原因

世界体育圈
2024-12-02 20:23:51
最近跟风吃了一周蒸苹果,感觉整个人都通畅了,脾胃真的太舒服了

最近跟风吃了一周蒸苹果,感觉整个人都通畅了,脾胃真的太舒服了

苏瑶的美食
2024-12-01 15:39:36
被恒大坑苦的几大装修老板,只有他提前醒悟,落袋14.6亿安全离场

被恒大坑苦的几大装修老板,只有他提前醒悟,落袋14.6亿安全离场

校长侃财
2024-12-01 11:06:25
曝王宝强忽悠小演员签25年卖身契,律师回应:王宝强不会忽悠别人

曝王宝强忽悠小演员签25年卖身契,律师回应:王宝强不会忽悠别人

拾娱先生
2024-12-03 17:37:43
女人的“生理需求”若长期得不到释放,可能会发生这5个变化!

女人的“生理需求”若长期得不到释放,可能会发生这5个变化!

番茄健康
2024-11-22 12:16:31
林诗栋谈丢掉一局:第一局还是非常不适应,第二局一点点调节

林诗栋谈丢掉一局:第一局还是非常不适应,第二局一点点调节

直播吧
2024-12-03 14:05:07
嫖娼的本质

嫖娼的本质

尚曦读史
2024-12-01 19:24:52
吸金200亿!落魄的诺基亚,2024年居然卖断货,重回世界第二!

吸金200亿!落魄的诺基亚,2024年居然卖断货,重回世界第二!

小柱解说游戏
2024-12-01 22:02:22
肯德基与汉堡王世纪大和解,合体推出BFF汉堡

肯德基与汉堡王世纪大和解,合体推出BFF汉堡

4A广告网
2024-12-03 14:49:34
于正签约网红白川,称赞他公子世无双,结果评论区又疑似塌房了

于正签约网红白川,称赞他公子世无双,结果评论区又疑似塌房了

老埘谈历史
2024-12-03 13:46:45
为了得到巅峰期的莎拉波娃,武贾西奇付出了巨大的代价!

为了得到巅峰期的莎拉波娃,武贾西奇付出了巨大的代价!

欧美八卦圈
2024-12-03 08:00:02
2024-12-03 19:51:00
开源中国
开源中国
每天为开发者推送最新技术资讯
6629文章数 34301关注度
往期回顾 全部

科技要闻

担心遭马斯克报复,他们纷纷示好特朗普

头条要闻

菲海警出动两艘日本造巡逻船 再赴鲎藤礁海域挑衅

头条要闻

菲海警出动两艘日本造巡逻船 再赴鲎藤礁海域挑衅

体育要闻

特鲁姆普:我还是从前那个少年

娱乐要闻

50岁林志玲生日晒娃引热议

财经要闻

梁建章:建议对生孩子家庭发10万元

汽车要闻

标配Lion5.0科技座舱 风云A8L将于12月17日上市

态度原创

游戏
艺术
本地
手机
教育

腾讯3款网易1款!2024年最后一个月冲业绩,大厂新作扎堆开测

艺术要闻

故宫珍藏的墨迹《十七帖》,比拓本更精良,这才是地道的魏晋写法

本地新闻

云游中国|来伦布夏果感受充满Passion的人生

手机要闻

消息称小米 REDMI Turbo 4 配备 6500mAh 电池 + 1.5K LTPS 直屏

教育要闻

燃智慧之光—2024年京都新员工大融合暨第四期青训营活动圆满落幕

无障碍浏览 进入关怀版