<cite id="ffb66"></cite><cite id="ffb66"><track id="ffb66"></track></cite>
      <legend id="ffb66"><li id="ffb66"></li></legend>
      色婷婷久,激情色播,久久久无码专区,亚洲中文字幕av,国产成人A片,av无码免费,精品久久国产,99视频精品3
      網(wǎng)易首頁 > 網(wǎng)易號 > 正文 申請入駐

      超硬核:為什么 SpringBoot 寧可挨罵也要干掉 spring.factories?

      0
      分享至

      釣友寶 (微信小程序):一款專門為 釣友 開發(fā)的 免費(fèi)的 分享釣點(diǎn)地圖與實(shí)時(shí)天氣的軟件,地圖中標(biāo)記了所有野釣、釣場、公共水域等的精確位置,支持導(dǎo)航、 預(yù)測釣魚位置的魚情 等功能。

      SpringBoot 3.0之后為什么取消了spring.factories

      1. 引言

      在SpringBoot的演進(jìn)過程中,3.0版本帶來了一次重大變革——取消了長期以來作為自動配置和擴(kuò)展機(jī)制核心的spring.factories文件。這個(gè)改變對于習(xí)慣了SpringBoot舊版本開發(fā)的工程師來說,需要了解新的機(jī)制和遷移策略。

      本文將深入探討這一變更的原因、影響以及替代方案。

      2. spring.factories是什么

      在討論它的取消之前,我們首先需要理解spring.factories文件在SpringBoot中扮演的角色。

      2.1 基本概念

      spring.factories是一個(gè)位于META-INF/目錄下的配置文件,它基于Java的SPI(Service Provider Interface)機(jī)制的變種實(shí)現(xiàn)。這個(gè)文件的主要功能是允許開發(fā)者聲明接口的實(shí)現(xiàn)類,從而實(shí)現(xiàn)SpringBoot的自動裝配和擴(kuò)展點(diǎn)注冊。

      2.2 主要用途

      在SpringBoot 3.0之前,spring.factories文件有以下幾個(gè)主要用途:


      2.3 工作原理

      SpringBoot啟動時(shí),會使用SpringFactoriesLoader類掃描類路徑下所有JAR包中的META-INF/spring.factories文件,讀取配置信息并加載對應(yīng)的類。這種機(jī)制使得SpringBoot能夠以"約定優(yōu)于配置"的方式實(shí)現(xiàn)自動裝配。

      // SpringFactoriesLoader核心代碼示例(SpringBoot 2.x) publicfinalclass SpringFactoriesLoader {     // ...     publicstatic    List   loadFactories(Class factoryType, @Nullable ClassLoader classLoader)  {         // ...          // 加載META-INF/spring.factories中的配置         Map > result = loadSpringFactories(classLoader);         // ...     }          privatestatic Map > loadSpringFactories( @Nullable ClassLoader classLoader) {         // 從類路徑中加載所有META-INF/spring.factories文件         // ...     }     // ... }

      3. 為什么要取消spring.factories

      SpringBoot團(tuán)隊(duì)決定取消spring.factories機(jī)制有幾個(gè)關(guān)鍵原因:

      3.1 性能問題

      spring.factories機(jī)制需要在啟動時(shí)掃描所有JAR包中的配置文件,當(dāng)項(xiàng)目依賴較多時(shí),這個(gè)過程會消耗大量時(shí)間,影響應(yīng)用啟動性能。

      3.2 缺乏模塊化支持

      隨著Java 9引入模塊系統(tǒng)(JPMS),傳統(tǒng)的基于類路徑掃描的方式與模塊化設(shè)計(jì)理念存在沖突。spring.factories無法很好地支持Java模塊系統(tǒng)。

      3.3 缺乏條件加載能力

      spring.factories文件中的配置是靜態(tài)的,無法根據(jù)條件動態(tài)決定是否加載某個(gè)實(shí)現(xiàn)。雖然可以在實(shí)現(xiàn)類上使用@Conditional注解,但這種方式效率較低,因?yàn)樗蓄惗紩患虞d到內(nèi)存中進(jìn)行條件評估。

      3.4 配置分散難以管理

      在大型項(xiàng)目中,spring.factories配置分散在多個(gè)JAR包中,難以集中管理和查看全局配置。

      3.5 GraalVM原生鏡像支持

      SpringBoot 3.0的一個(gè)重要目標(biāo)是提供對GraalVM原生鏡像的一流支持。而spring.factories基于運(yùn)行時(shí)類路徑掃描的機(jī)制與GraalVM的提前編譯(Ahead-of-Time Compilation, AOT)模型存在根本性沖突。具體來說:

      • 靜態(tài)分析限制:GraalVM在構(gòu)建原生鏡像時(shí)需要靜態(tài)分析代碼,而spring.factories的類路徑掃描是動態(tài)執(zhí)行的,無法在構(gòu)建時(shí)確定。

      • 反射使用問題:spring.factories依賴于反射加載類,而GraalVM需要預(yù)先知道所有使用反射的類,這需要額外的配置和處理。

      • 資源訪問限制:在GraalVM原生鏡像中,資源文件的訪問機(jī)制與JVM有所不同,spring.factories文件的掃描方式需要特殊處理。

      為了更好地支持GraalVM,SpringBoot需要一種在構(gòu)建時(shí)就能確定的靜態(tài)配置方式,而不是運(yùn)行時(shí)的動態(tài)掃描。

      4. 替代方案:imports文件

      4.1 新機(jī)制介紹

      從SpringBoot 3.0開始,引入了基于imports文件的新機(jī)制,作為spring.factories的替代方案。這些文件位于META-INF/spring/目錄下,每種類型的擴(kuò)展點(diǎn)對應(yīng)一個(gè)專門的文件:


      4.2 新機(jī)制優(yōu)勢

      • 更好的性能:每種擴(kuò)展點(diǎn)類型使用單獨(dú)的文件,避免了加載不必要的配置

      • 支持Java模塊系統(tǒng):新機(jī)制與Java模塊系統(tǒng)兼容

      • 簡化配置:每行一個(gè)全限定類名,無需鍵值對形式,更易讀易寫

      • 更好的組織結(jié)構(gòu):配置按功能分類到不同文件,結(jié)構(gòu)更清晰

      4.3 示例對比

      舊方式(spring.factories):

      org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ com.example.FooAutoConfiguration,\ com.example.BarAutoConfiguration

      新方式(AutoConfiguration.imports):

      com.example.FooAutoConfiguration com.example.BarAutoConfiguration

      5. 遷移指南

      5.1 自動配置類遷移

      將原來在spring.factories中注冊的自動配置類移動到META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports文件中:

      // 原來的自動配置類 @Configuration @ConditionalOnXxx public class MyAutoConfiguration {     // ... } // 在META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports文件中添加: // com.example.MyAutoConfiguration

      5.2 其他擴(kuò)展點(diǎn)如何遷移

      對于其他類型的擴(kuò)展點(diǎn),SpringBoot 3.0保留了spring.factories機(jī)制,但推薦在新項(xiàng)目中使用新的注冊方式:

      // 示例:注冊ApplicationListener // SpringBoot 3.0之前:在spring.factories中配置 // org.springframework.context.ApplicationListener=com.example.MyListener // SpringBoot 3.0之后:使用@Bean方式注冊 @Configuration public class MyConfiguration {     @Bean     public MyListener myListener() {         return new MyListener();     } }

      5.3 自定義擴(kuò)展點(diǎn)遷移

      對于自定義的擴(kuò)展點(diǎn),需要提供類似的imports文件機(jī)制:

      // 自定義擴(kuò)展點(diǎn)加載器示例 publicclass MyExtensionLoader {     public List   loadExtensions() {         return SpringFactoriesLoader.loadFactories(MyExtension.class, null);     } } // 遷移到新機(jī)制 publicclass MyExtensionLoader {     public List   loadExtensions() {         List classNames = SpringFactoriesLoader.loadFactoryNames(             MyExtension.class, null);         // 或者實(shí)現(xiàn)自己的imports文件加載邏輯         // ...     } }

      6. SpringFactoriesLoader的變化

      6.1 API變更

      在SpringBoot 3.0中,SpringFactoriesLoader類本身也經(jīng)歷了重大改變:


      // SpringBoot 3.x中新的SpringFactoriesLoader用法 publicfinalclass SpringFactoriesLoader {     // 過時(shí)的方法     @Deprecated     publicstatic    List   loadFactories(Class factoryType, @Nullable ClassLoader classLoader)  {         // ...     }          // 新方法     public static List   loadFactoryNames(Class factoryType, @Nullable ClassLoader classLoader) {         // 加載對應(yīng)的imports文件         // ...     }          // ... }

      6.2 兼容性考慮

      為了保持向后兼容性,SpringBoot 3.0仍然支持通過spring.factories注冊某些類型的擴(kuò)展點(diǎn),但新的項(xiàng)目應(yīng)該優(yōu)先考慮使用新機(jī)制。

      7. 實(shí)戰(zhàn)示例

      7.1 創(chuàng)建自定義自動配置

      下面是一個(gè)完整的示例,展示如何在SpringBoot 3.0中創(chuàng)建和注冊自動配置:

      // 1. 創(chuàng)建配置屬性類 @ConfigurationProperties(prefix = "myapp") publicclass MyProperties {     privateboolean enabled = true;     private String name = "default";          // getter和setter方法     // ... } // 2. 創(chuàng)建自動配置類 @AutoConfiguration// 注意這里使用了@AutoConfiguration而非@Configuration @EnableConfigurationProperties(MyProperties.class) @ConditionalOnProperty(prefix = "myapp", name = "enabled", havingValue = "true", matchIfMissing = true) publicclass MyAutoConfiguration {          privatefinal MyProperties properties;          public MyAutoConfiguration(MyProperties properties) {         this.properties = properties;     }          @Bean     @ConditionalOnMissingBean     public MyService myService() {         // 根據(jù)屬性創(chuàng)建服務(wù)         returnnew MyServiceImpl(properties.getName());     } }

      7.2 注冊自動配置

      然后,在META-INF/spring/目錄下創(chuàng)建org.springframework.boot.autoconfigure.AutoConfiguration.imports文件:

      com.example.MyAutoConfiguration

      7.3 項(xiàng)目結(jié)構(gòu)

      完整的項(xiàng)目結(jié)構(gòu)如下:

      myproject/ ├── src/ │   └── main/ │       ├── java/ │       │   └── com/ │       │       └── example/ │       │           ├── MyProperties.java │       │           ├── MyService.java │       │           ├── MyServiceImpl.java │       │           └── MyAutoConfiguration.java │       └── resources/ │           └── META-INF/ │               └── spring/ │                   └── org.springframework.boot.autoconfigure.AutoConfiguration.imports └── pom.xml

      8. 性能對比

      在一個(gè)典型的中型SpringBoot應(yīng)用中,使用新機(jī)制后的啟動性能對比:


      注:實(shí)際性能提升取決于項(xiàng)目規(guī)模和結(jié)構(gòu)

      9. 常見問題與解決方案

      9.1 兼容性問題

      問題:現(xiàn)有的依賴庫仍使用spring.factories,會有兼容問題嗎?

      解決方案:SpringBoot 3.0保留了對spring.factories的支持,舊的庫仍然可以正常工作。但新的代碼應(yīng)該使用新機(jī)制。

      9.2 遷移困難

      問題:大型項(xiàng)目遷移到新機(jī)制工作量大

      解決方案:可以分階段遷移,先遷移自動配置類,再逐步遷移其他擴(kuò)展點(diǎn)。

      9.3 自定義加載器

      問題:自定義的SpringFactoriesLoader使用者如何遷移?

      解決方案:參考SpringBoot的新實(shí)現(xiàn),為自定義擴(kuò)展點(diǎn)提供類似的imports文件加載機(jī)制。

      10. SpringBoot 3.0與GraalVM集成

      SpringBoot 3.0對GraalVM的支持是取消spring.factories的主要原因之一。

      10.1 GraalVM簡介

      GraalVM是一個(gè)高性能的JDK實(shí)現(xiàn),它的一個(gè)重要特性是能夠?qū)ava應(yīng)用編譯成獨(dú)立的原生可執(zhí)行文件(Native Image)。這些原生鏡像具有以下特點(diǎn):

      • 快速啟動:啟動時(shí)間通常在毫秒級,比傳統(tǒng)JVM應(yīng)用快10-100倍

      • 低內(nèi)存占用:內(nèi)存占用顯著降低,適合云原生和容器環(huán)境

      • 無需JVM:可以獨(dú)立運(yùn)行,不需要Java運(yùn)行時(shí)環(huán)境

      • 預(yù)先編譯:所有代碼在構(gòu)建時(shí)就編譯為機(jī)器碼,而非運(yùn)行時(shí)編譯

      10.2 SpringBoot對GraalVM的支持挑戰(zhàn)

      SpringBoot框架面臨的主要挑戰(zhàn)是其動態(tài)特性與GraalVM靜態(tài)分析模型之間的矛盾:


      10.3 imports文件與GraalVM的兼容性

      新的imports文件機(jī)制解決了與GraalVM集成的關(guān)鍵問題:

      • 靜態(tài)可分析性:imports文件中明確列出所有配置類,可以在構(gòu)建時(shí)靜態(tài)分析

      • 路徑明確性:每種擴(kuò)展點(diǎn)對應(yīng)特定的文件路徑,減少了運(yùn)行時(shí)掃描

      • 更少的反射:imports文件的解析機(jī)制更簡單,減少了對反射的依賴

      • 構(gòu)建時(shí)處理:可以在AOT編譯階段處理imports文件并生成相應(yīng)的元數(shù)據(jù)

      10.4 SpringBoot AOT引擎

      為了更好地支持GraalVM,SpringBoot 3.0引入了一個(gè)新的AOT引擎,它在構(gòu)建時(shí)執(zhí)行以下操作:

      // SpringBoot 3.0 AOT處理示例 publicclass SpringAotProcessor {     public void process() {         // 1. 讀取imports文件而非掃描spring.factories         List configurations = readImportsFiles();                  // 2. 預(yù)先評估條件而非運(yùn)行時(shí)評估         List effectiveConfigurations =              evaluateConditions(configurations, buildTimeProperties);                  // 3. 生成代理類而非運(yùn)行時(shí)動態(tài)生成         generateProxies(effectiveConfigurations);                  // 4. 生成反射配置         generateReflectionConfig(effectiveConfigurations);                  // 5. 生成資源配置         generateResourcesConfig();     } }

      10.5 GraalVM集成實(shí)例

      下面是一個(gè)完整的示例,展示如何在SpringBoot 3.0項(xiàng)目中配置和構(gòu)建GraalVM原生鏡像:

      Maven配置

      
           
      
               
      
       org.springframework.boot groupId>         
      
       spring-boot-starter artifactId>      dependency>     
      
               
      
       org.springframework.experimental groupId>         
      
       spring-native artifactId>         
      
       ${spring-native.version} version>      dependency> dependencies> 
      
           
      
               
      
                   
      
       org.springframework.boot groupId>             
      
       spring-boot-maven-plugin artifactId>             
      
                       
      
      
       paketobuildpacks/builder:tiny builder>                     
      
                               
      
       true BP_NATIVE_IMAGE>                      env>                  image>              configuration>          plugin>         
      
                   
      
       org.springframework.experimental groupId>             
      
       spring-aot-maven-plugin artifactId>             
      
                       
      
                           
      
       generate id>                     
      
                               
      
       generate goal>                      goals>                  execution>              executions>          plugin>      plugins> build>
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      

      自動配置遷移示例

      // 舊的方式 - spring.factories配置: // META-INF/spring.factories: // org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.example.MyNativeCompatibleConfig // 新的方式 - imports文件: // META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports: // com.example.MyNativeCompatibleConfig // 自動配置類 @AutoConfiguration @NativeHint(options = "--enable-url-protocols=http") // GraalVM特定的提示 publicclass MyNativeCompatibleConfig {     @Bean     public MyService myService() {         returnnew MyNativeCompatibleService();     } }

      10.6 性能對比:傳統(tǒng)JVM vs GraalVM原生鏡像

      使用新的imports機(jī)制后,SpringBoot應(yīng)用在GraalVM原生鏡像中的性能表現(xiàn):


      10.7 GraalVM集成的最佳實(shí)踐

      • 減少反射使用:盡量使用構(gòu)造函數(shù)注入而非字段注入

      • 避免動態(tài)代理:減少使用需要動態(tài)代理的特性

      • 靜態(tài)初始化:在構(gòu)建時(shí)初始化靜態(tài)數(shù)據(jù)而非運(yùn)行時(shí)

      • 使用imports文件:確保所有配置類都通過imports文件注冊

      • 添加必要的提示:使用@NativeHint等注解提供GraalVM所需的提示

      10.8 GraalVM集成的限制和注意事項(xiàng)

      • 動態(tài)特性受限:諸如運(yùn)行時(shí)生成字節(jié)碼、動態(tài)加載類等特性在原生鏡像中受限

      • 反射使用:必須明確聲明使用反射的類

      • 構(gòu)建時(shí)間:原生鏡像構(gòu)建時(shí)間較長,需要合理規(guī)劃CI/CD流程

      • 調(diào)試復(fù)雜度:原生鏡像的調(diào)試比傳統(tǒng)JVM更復(fù)雜

      • 第三方庫兼容性:某些依賴可能尚未針對GraalVM優(yōu)化

      通過取消spring.factories并引入新的imports文件機(jī)制,SpringBoot 3.0顯著改善了與GraalVM的集成體驗(yàn),讓開發(fā)者能夠更容易地構(gòu)建高性能、低延遲的云原生應(yīng)用。


      Java精選面試題 (微信小程序):5000+道面試題和選擇題,包含Java基礎(chǔ)、MQ、Redis、SpringBoot、Elasticsearch、Docker、K8s、Flink、Spark、架構(gòu)設(shè)計(jì)、大廠真題等,在線隨時(shí)刷題!
      來源:https://blog.csdn.net/AWen_Jack/article/details/146455281

      公眾號“Java精選”所發(fā)表內(nèi)容注明來源的,版權(quán)歸原出處所有(無法查證版權(quán)的或者未注明出處的均來自網(wǎng)絡(luò),系轉(zhuǎn)載,轉(zhuǎn)載的目的在于傳遞更多信息,版權(quán)屬于原作者。如有侵權(quán),請聯(lián)系,筆者會第一時(shí)間刪除處理!

      最近有很多人問,有沒有讀者或者摸魚交流群!加入方式很簡單,公眾號Java精選,回復(fù)“加群”,即可入群!

      文章有幫助的話,點(diǎn)在看,轉(zhuǎn)發(fā)吧!

      特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。

      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.

      相關(guān)推薦
      熱點(diǎn)推薦
      大連旅順一座老塔剛傳出要拆,日本立馬跳腳,開口就討“廢料”

      大連旅順一座老塔剛傳出要拆,日本立馬跳腳,開口就討“廢料”

      百態(tài)人間
      2025-12-19 16:48:22
      華子轟26+12仍無緣今日最佳!對不起,你碰到不講理的文班亞馬了

      華子轟26+12仍無緣今日最佳!對不起,你碰到不講理的文班亞馬了

      世界體育圈
      2025-12-20 13:38:48
      “成都27歲女子家門口被殺案”宣判,法院認(rèn)為被告人行為不構(gòu)成自首

      “成都27歲女子家門口被殺案”宣判,法院認(rèn)為被告人行為不構(gòu)成自首

      澎湃新聞
      2025-12-20 15:06:27
      “英國關(guān)之琳”閃婚大25歲白頭大叔,全網(wǎng)崩潰:垃圾堆里找男人?

      “英國關(guān)之琳”閃婚大25歲白頭大叔,全網(wǎng)崩潰:垃圾堆里找男人?

      陳天宇
      2025-12-20 00:04:13
      臺北市長蔣萬安將赴上海,行程曝光

      臺北市長蔣萬安將赴上海,行程曝光

      第一財(cái)經(jīng)資訊
      2025-12-19 21:59:17
      小米17 Ultra代號夜神 盧偉冰:絕對是最強(qiáng)Ultra

      小米17 Ultra代號夜神 盧偉冰:絕對是最強(qiáng)Ultra

      快科技
      2025-12-20 22:58:07
      楊晨成國安新帥最大黑馬!球迷呼吁名宿回歸,德甲背景成關(guān)鍵優(yōu)勢

      楊晨成國安新帥最大黑馬!球迷呼吁名宿回歸,德甲背景成關(guān)鍵優(yōu)勢

      光輝與陰暗
      2025-12-20 23:57:45
      碾壓,曼城英超對陣西漢姆聯(lián)已連續(xù)20場不敗+7連勝

      碾壓,曼城英超對陣西漢姆聯(lián)已連續(xù)20場不敗+7連勝

      懂球帝
      2025-12-21 01:17:58
      邢自強(qiáng):如果房地產(chǎn)不實(shí)現(xiàn)止跌回穩(wěn),很難打破消費(fèi)疲軟等問題

      邢自強(qiáng):如果房地產(chǎn)不實(shí)現(xiàn)止跌回穩(wěn),很難打破消費(fèi)疲軟等問題

      新浪財(cái)經(jīng)
      2025-12-18 15:48:03
      陳志的可怕,不在他有多狠,而在于他一路順風(fēng)順?biāo)?>
    </a>
        <h3>
      <a href=熱點(diǎn)菌本君
      2025-11-10 15:45:57
      2025國劇最高分!《反人類暴行》豆瓣開分8.5

      2025國劇最高分!《反人類暴行》豆瓣開分8.5

      新京報(bào)
      2025-12-19 17:46:22
      驚心動魄!60歲老人因意外“頭頸分離”直送ICU,經(jīng)廣州醫(yī)生搶救獲重生

      驚心動魄!60歲老人因意外“頭頸分離”直送ICU,經(jīng)廣州醫(yī)生搶救獲重生

      極目新聞
      2025-12-20 08:38:15
      網(wǎng)友們終于把蒸汽機(jī)發(fā)明這事給理明白了

      網(wǎng)友們終于把蒸汽機(jī)發(fā)明這事給理明白了

      清暉有墨
      2025-11-24 14:01:50
      早就想打!日媒首次爆料:中國雙航母出動時(shí)日軍戰(zhàn)機(jī)已做戰(zhàn)斗準(zhǔn)備

      早就想打!日媒首次爆料:中國雙航母出動時(shí)日軍戰(zhàn)機(jī)已做戰(zhàn)斗準(zhǔn)備

      詩意世界
      2025-08-21 13:13:50
      國際足聯(lián)官宣,登貝萊再破天花板,讓梅西和整個(gè)體壇都“沉默”了

      國際足聯(lián)官宣,登貝萊再破天花板,讓梅西和整個(gè)體壇都“沉默”了

      負(fù)面黑洞
      2025-12-20 07:31:41
      摩爾線程發(fā)布新一代GPU架構(gòu)“花港”:能效提升10倍,支持十萬卡以上智算集群

      摩爾線程發(fā)布新一代GPU架構(gòu)“花港”:能效提升10倍,支持十萬卡以上智算集群

      澎湃新聞
      2025-12-20 10:48:26
      俄羅斯沒想到,美國更沒想到,如今的中國石油,成為石油遙遙領(lǐng)先

      俄羅斯沒想到,美國更沒想到,如今的中國石油,成為石油遙遙領(lǐng)先

      生活新鮮市
      2025-12-20 16:24:32
      荷蘭不給晶圓,聞泰有新招

      荷蘭不給晶圓,聞泰有新招

      觀察者網(wǎng)
      2025-12-20 08:36:14
      連場轟20+!中國女籃26歲2米王牌閃耀:升聯(lián)盟第2,宮帥招她嗎?

      連場轟20+!中國女籃26歲2米王牌閃耀:升聯(lián)盟第2,宮帥招她嗎?

      李喜林籃球絕殺
      2025-12-20 16:09:28
      中日交惡,錯(cuò)在中方?第二個(gè)指責(zé)我國的出現(xiàn),點(diǎn)名中國用詞激烈

      中日交惡,錯(cuò)在中方?第二個(gè)指責(zé)我國的出現(xiàn),點(diǎn)名中國用詞激烈

      肖茲探秘說
      2025-11-25 13:12:05
      2025-12-21 01:51:00
      Java精選
      Java精選
      一場永遠(yuǎn)也演不完的戲
      1764文章數(shù) 3859關(guān)注度
      往期回顧 全部

      科技要聞

      許四清:具身智能的"ChatGPT時(shí)刻"還未到來

      頭條要聞

      印度官員:若"臺灣有事" 印度不太可能像西方那樣回應(yīng)

      頭條要聞

      印度官員:若"臺灣有事" 印度不太可能像西方那樣回應(yīng)

      體育要聞

      我開了20年大巴,現(xiàn)在是一名西甲主帥

      娛樂要聞

      2026央視跨年晚會陣容曝光,豪華陣仗

      財(cái)經(jīng)要聞

      求解“地方財(cái)政困難”

      汽車要聞

      嵐圖推進(jìn)L3量產(chǎn)測試 已完成11萬公里實(shí)際道路驗(yàn)證

      態(tài)度原創(chuàng)

      時(shí)尚
      藝術(shù)
      數(shù)碼
      旅游
      公開課

      最顯腿細(xì)的騎士靴,誰穿誰是腿精

      藝術(shù)要聞

      投資26億!廣州“獨(dú)角獸”的總部大樓,躍出地面!

      數(shù)碼要聞

      50歲了!長虹第一臺彩電入駐中國國家博物館

      旅游要聞

      虹口新春“五必”榜單來啦!一季度“樂購樂游”攻略輕松拿捏!

      公開課

      李玫瑾:為什么性格比能力更重要?

      無障礙瀏覽 進(jìn)入關(guān)懷版 主站蜘蛛池模板: 无限看片在线版免费视频大全 | 久久综合综合久久综合| 女人18毛片水真多| 亚洲午夜亚洲精品国产成人| 国产熟女掹操| 人妻精品久久久久中文字幕19| www成人国产高清内射| 国产丝袜视频一区二区三区| 精品久久久久久综合日本| 少妇激情一区二区三区视频小说| 福利导航在线播放| 亚洲色诱惑| 大黑人交xxxx18视频| 一本色道国产在线观看二区| 美女污污网站| 人妻a?v| 暖暖 在线 日本 免费 中文| 国产精品无码成人午夜电影| 小泽玛利亚一区| 久久综合久色欧美综合狠狠| 亚洲自国产拍揄拍| 午夜免费视频国产在线| 色婷婷粉嫩Av| 国产乱人伦av在线无码| 国精产品一区一区三区有限公司| 强奷乱码中文字幕| 国产互换人妻XXXXXX6| 熟女性饥渴一区二区三区| 三个男吃我奶头一边一个视频| 精品无码产区一区二| 日韩肏屄| 无码中文字幕乱码一区| 精品一区二区三区四区| 加勒比无码人妻东京热| 华容县| 无套内射极品少妇chinese| 亚洲成人高清无码| 亚洲专区久久| 极品人妻系列| 中出内射颜射骚妇| 日本熟妇浓毛|