【2021最新版】Spring Boot面試題總結(92道題含答案解析)

      網友投稿 1037 2025-04-02

      文章目錄


      1、什么是Spring Boot?

      2、為什么要用SpringBoot?

      3、Spring Boot有哪些優點?

      4、Spring Boot的核心注解是哪個?它主要由哪幾個注解組成的?

      5、運行Spring Boot有哪幾種方式?

      6、如何理解Spring Boot中的Starters?

      7、如何在Spring Boot啟動的時候運行一些特定的代碼?

      8、Spring Boot需要獨立的容器運行嗎?

      9、Spring Boot中的監視器是什么?

      10、如何使用Spring Boot實現異常處理?

      11、你如何理解Spring Boot中的Starters?

      12、springboot常用的starter有哪些?

      13、SpringBoot實現熱部署有哪幾種方式?

      14、如何理解Spring Boot配置加載順序?

      15、Spring Boot的核心配置文件有哪幾個?它們的區別是什么?

      16、如何集成Spring Boot和ActiveMQ?

      17、什么是JavaConfifig?

      18、如何重新加載Spring Boot上的更改,而無需重新啟動服務器?

      19、Spring Boot中的監視器是什么?

      20、如何在Spring Boot中禁用Actuator端點安全性?

      21、如何在自定義端口上運行Spring Boot應用程序?

      22、什么是YAML?

      23、如何實現Spring Boot應用程序的安全性?

      24、如何集成Spring Boot和ActiveMQ?

      25、如何使用Spring Boot 實現分頁和排序?

      26、什么是Swagger?你用Spring Boot實現了它嗎?

      27、什么是Spring Profifiles?

      28、什么是Spring Batch?

      29、什么是FreeMarker 模板?

      30、如何使用Spring Boot實現異常處理?

      31、您使用了哪些starter maven依賴項?

      32、什么是CSRF攻擊?

      33、什么是WebSockets?

      34、什么是AOP?

      35、什么是Apache Kafka?

      36、我們如何監視所有Spring Boot微服務?

      37、Spring Boot的配置文件有哪幾種格式?它們有什么區別?

      38、開啟Spring Boot特性有哪幾種方式?

      39、Spring Boot的目錄結構是怎樣的?

      40、運行Spring Boot有哪幾種方式?

      41、Spring Boot自動配置原理是什么?

      42、如何在Spring Boot啟動的時候運行一些特定的代碼?

      43、Spring Boot有哪幾種讀取配置的方式?

      44、Spring Boot支持哪些日志框架?推薦和默認的日志框架是哪個?

      45、Spring Boot如何定義多套不同環境配置?

      46、Spring Boot可以兼容老Spring項目嗎,如何做?

      47、保護Spring Boot應用有哪些方法?

      48、Spring Boot 2.X 有什么新特性?與1.X有什么區別?

      49、如何重新加載Spring Boot上的更改,而無需重新啟動服務器?

      50、springboot集成mybatis的過程

      51、Spring Boot、Spring MVC 和 Spring 有什么區別?

      52、什么是 Spring Boot Stater ?

      53、Spring Boot 還提供了其它的哪些 Starter Project Options?

      54、Spring是如何快速創建產品就緒應用程序的?

      Spring2和Spring5所需要的最低Java版本是什么?

      55、創建一個Spring Boot Project的最簡單的方法是什么?

      56、Spring Initializr是創建Spring Boot Projects的唯一方法嗎?

      57、如何使用SpringBoot自動重裝我的應用程序?

      58、 什么是嵌入式服務器?我們為什么要使用嵌入式服務器呢?

      59、如何在Spring Boot中添加通用的JS代碼?

      60、什么是Spring Date?

      61、什么是Spring Data REST?

      62、path=”users”, collectionResourceRel=”users”如何與Spring Data Rest一起使用?

      63、當Spring Boot應用程序作為Java應用程序運行時,后臺會發生什么?

      64、我們能否在spring-boot-starter-web中用jetty代替 tomcat?

      65、如何使用Spring Boot生成一個WAR文件?

      66、如何使用Spring Boot部署到不同的服務器?

      67、RequestMapping和GetMapping的不同之處在哪里?

      68、為什么我們不建議在實際的應用程序中使用Spring Data Rest?

      69、在Spring Initializer中,如何改變一個項目的包名字?

      70、可以配置application.propertierde的完整的屬性列表在哪里可以找到?

      71、JPA和Hibernate有哪些區別?

      72、使用Spring Boot啟動連接到內存數據H2的JPA應用程序需要哪些依賴項?

      73、如何不通過任何配置來選擇Hibernate作為JPA的默認實現?

      74、指定的數據庫連接信息在哪里?它是如何知道自動連接至 H2的?

      75、我們如何連接一個像MSSQL或者orcale一樣的外部數據庫?

      76、Spring Boot配置的默認H2數據庫的名字是上面?為什么默認的數據庫名字是testdb?

      77、如果H2不在類路徑里面,會出現上面情況?

      78、你能否舉一個以ReadOnly為事務管理的例子?

      79、發布Spring Boot用戶應用程序自定義配置的最好方法是什么?

      80、配置文件的需求是什么?

      81、如何使用配置文件通過Spring Boot配置特定環境的配置?

      82、我們如何使用Maven設置Spring Boot應用程序?

      83、如何禁用特定的自動配置?

      84、Spring boot支持哪些外部配置?

      85、如何對Spring Boot應用進行測試?

      86、Spring Boot Actuator有什么用?

      87、SpringBoot 中靜態首頁默認位置可以放在哪里?

      88、SpringBoot 中靜態資源直接映射的優先級是怎樣的?

      89、繼承 WebMvcConfifigurerAdapter 抽象類,常用的重寫方法列舉幾個?

      90、@SpringBootApplication引入了哪3個重要的注解?

      91、@SpringBootApplication注解中的屬性相當于哪幾個注解?

      總結

      最近面試的小伙伴很多,對此我整理了一份Java面試題手冊:基礎知識、JavaOOP、Java集合/泛型面試題、Java異常面試題、Java中的IO與NIO面試題、Java反射、Java序列化、Java注解、多線程&并發、JVM、Mysql、Redis、Memcached、MongoDB、Spring、SpringBoot、SpringCloud、RabbitMQ、Dubbo、MyBatis、ZooKeeper、數據結構、算法、Elasticsearch、Kafka、微服務、Linux等等。可以分享給大家學習?!境掷m更新中】

      完整版Java面試題地址:【2021最新版】Java面試真題匯總

      1、什么是Spring Boot?

      答:

      多年來,隨著新功能的增加 ,spring變得越來越復雜。 只需訪問https://spring.io/projects頁面 ,我們就會看到可以在我們的應 用程序中使用的所有Spring項目的不同功能。 如果必須啟動一個新的Spring項目,我們必須添加構建路徑或添加Maven依賴關系,配置應用程序服務器,添加spring配置。因此,開始一個新的spring項目需要很多努力,因為我們現在必須從頭開始做所有事情。

      Spring Boot是解決這個問題的方法。Spring Boot已經建立在現有spring框架之上。使用spring啟動,我們避免了之前我們必須 做的所有樣板代碼和配置。因此, Spring Boot可以幫助我們以最少的工作量, 更加健壯地使用現有的Spring功能。

      2、為什么要用SpringBoot?

      答:

      Spring Boot 優點非常多,如:

      一、獨立運行

      Spring Boot而且內嵌了各種servlet容器,Tomcat、Jetty等,現在不再需要打成war包部署到容器中,Spring Boot只要打成一個可執行的jar包就能獨立運行,所有的依賴包都在一個jar包內。

      二、簡化配置

      spring-boot-starter-web啟動器自動依賴其他組件,簡少了maven的配置。

      三、自動配置

      Spring Boot能根據當前類路徑下的類、jar包來自動配置bean,如添加一個spring-boot-starter-web啟動器就能擁有web的功能,無需其他配置。

      四、無代碼生成和XML配置

      Spring Boot配置過程中無代碼生成,也無需XML配置文件就能完成所有配置工作,這一切都是借助于條件注解完成的,這也是Spring4.x的核心功能之一。

      五、應用監控

      Spring Boot提供一系列端點可以監控服務及應用,做健康檢測。

      3、Spring Boot有哪些優點?

      答:

      Spring Boot的優點有:

      1、減少開發,測試時間和努力。

      2、使用 JavaConfig 有助于避免使用 XML。

      3、避免大量的 Maven 導入和各種版本沖突。

      4、提供意見發展方法。

      5、通過提供默認值快速開始開發。

      6、沒有單獨的Web服務器需要。這意味著你不再需要啟動 omcat,Glassfish或其他任何東西。

      7、需要更少的配置 因為沒有web.xml文件。只需添加用@Configuration 注釋的類,然后添加用@Bean注釋的方法,Spring將自動加載對象并像以前一樣對其進行管理。您甚至可以將@Autowired添加到bean方法中,以使Spring自動裝入需要的依賴關系中。

      8、基于環境的配置 使用這些屬性,您可以將您正在使用的環境傳遞到應用程序:-Dspring.profiles.active = {enviornment}。在加載主應用程序屬性文件后,Spring將在(application{environment} .properties)中加載后續的應用程序屬性文件。

      4、Spring Boot的核心注解是哪個?它主要由哪幾個注解組成的?

      答:

      啟動類上面的注解是@SpringBootApplication,它也是Spring Boot的核心注解,主要組合包含了以下3個注解:

      @SpringBootConfiguration: 組合了@Configuration 注解,實現配置文件的功能。

      @EnableAutoConfiguration: 打開自動配置的功能,也可以關閉某個自動配置的選項,如關閉數據源自動配置功能: @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })。

      @ComponentScan: Spring組件掃描

      5、運行Spring Boot有哪幾種方式?

      答:

      1)打包用命令或者放到容器中運行

      2)用Maven/Gradle插件運行

      3)直接執行main方法運行

      6、如何理解Spring Boot中的Starters?

      答:

      Starters是什么:

      Starters可以理解為啟動器,它包含了一系列可以集成到應用里面的依賴包,你可以一站式集成Spring及其他技術,而不需要到處找示例代碼和依賴包。

      如你想使用Spring JPA訪問數據庫,只要加入springboot-starter-data-jpa啟動器依賴就能使用了。Starters包含了許多項目中需要用到的依賴,它們能快速持續的運行,都是一系列得到支持的管理傳遞性依賴。

      Starters命名:

      Spring Boot官方的啟動器都是以spring-boot-starter-命名的,代表了一個特定的應用類型。第三方的啟動器不能以spring-boot開頭命名,它們都被Spring Boot官方保留。一般一個第三方的應該這樣命名,像mybatis的mybatis-spring-boot-starter。

      Starters分類:

      Spring Boot應用類啟動器

      2.Spring Boot生產啟動器

      3. 其他第三方啟動器

      7、如何在Spring Boot啟動的時候運行一些特定的代碼?

      答:

      如果你想在Spring Boot啟動的時候運行一些特定的代碼,你可以實現接口ApplicationRunner或者CommandLineRunner,這兩個接口實現方式一樣,它們都只提供了一個run方法。

      CommandLineRunner:啟動獲取命令行參數。

      8、Spring Boot需要獨立的容器運行嗎?

      答:

      可以不需要,內置了Tomcat/Jetty等容器。

      9、Spring Boot中的監視器是什么?

      答:

      Spring boot actuator是spring啟動框架中的重要功能之一。Spring boot監視器可幫助您訪問生產環境中正在運行的應用程序的當前狀態。

      有幾個指標必須在生產環境中進行檢查和監控。即使一些外部應用程序可能正在使用這些服務來向相關人員觸發警報消息。監視器模塊公開了一組可直接作為HTTP URL訪問的REST端點來檢查狀態。

      10、如何使用Spring Boot實現異常處理?

      答:

      Spring提供了一種使用ControllerAdvice處理異常的非常有用的方法。 我們通過實現一個ControlerAdvice類,來處理控制器類拋出的所有異常。

      11、你如何理解Spring Boot中的Starters?

      答:

      Starters可以理解為啟動器,它包含了一系列可以集成到應用里面的依賴包,你可以一站式集成Spring及其他技術,而不需要到處找示例代碼和依賴包。如你想使用Spring JPA訪問數據庫,只要加入spring-boot-starter-data-jpa 啟動器依賴就能使用了

      12、springboot常用的starter有哪些?

      答:

      spring-boot-starter-web嵌入tomcat和web開發需要servlet與jsp支持

      spring-boot-starter-data-jpa數據庫支持

      spring-boot-starter-data-redis redis數據庫支持

      spring-boot-starter-data-solr solr支持

      mybatis-spring-boot-starter第三方的mybatis集成starter

      13、SpringBoot實現熱部署有哪幾種方式?

      答:

      主要有兩種方式:

      Spring Loaded

      Spring-boot-devtools

      14、如何理解Spring Boot配置加載順序?

      答:

      在Spring Boot里面,可以使用以下幾種方式來加載配置。

      1)properties文件;

      2)YAML文件;

      3)系統環境變量;

      4)命令行參數;

      等等。

      15、Spring Boot的核心配置文件有哪幾個?它們的區別是什么?

      答:

      Spring Boot的核心配置文件是application和bootstrap配置文件。

      application配置文件這個容易理解,主要用于Spring Boot項目的自動化配置。

      bootstrap配置文件有以下幾個應用場景。

      使用Spring Cloud Config配置中心時,這時需要在bootstrap配置文件中添加連接到配置中心的配置屬性來加載外部配置中心的配置信息;

      一些固定的不能被覆蓋的屬性;

      一些加密/解密的場景

      16、如何集成Spring Boot和ActiveMQ?

      答:

      對于集成Spring Boot 和 ActiveMQ,我們使用spring-boot-starter-activemq依賴關系。 它只需要很少的配置,并且不需要樣板代碼。

      17、什么是JavaConfifig?

      答:

      Spring JavaConfig是Spring社區的產品,它提供了配置Spring IoC容器的純Java方法。因此它有助于避免使用XML配置。

      使用JavaConfig 的優點在于:

      1、面向對象的配置。由于配置被定義為JavaConfig中的類,因此用戶可以充分利用Java中的面向對象功能。一個配置類可以繼承另一個,重寫它的@Bean 方法等。

      2、減少或消除XML配置?;谝蕾囎⑷朐瓌t的外化配置的好處已被證明。但是,許多開發人員不希望在XML和Java之間來回切換。

      JavaConfig為開發人員提供了一種純Java方法來配置與XML配置概念相似的Spring容器。從技術角度來講,只使用JavaConfig配置類來配置容器是可行的,但實際上很多人認為將JavaConfig與XML混合匹配是理想的。

      3、類型安全和重構友好。JavaConfig提供了一種類型安全的方法來配置Spring容器。由于Java 5.0對泛型的支持,現在可以按類型而不是按名稱檢索bean,不需要任何強制轉換或基于字符串的查找。

      18、如何重新加載Spring Boot上的更改,而無需重新啟動服務器?

      答:

      這可以使用 DEV 工具來實現。通過這種依賴關系,您可以節省任何更改,嵌入式tomcat將重新啟動。

      Spring Boot有一個開發工具(DevTools)模塊,它有助于提高開發人員的生產力。

      Java開發人員面臨的一個主要挑戰是將文件更改自動部署到服務器并自動重啟服務器。開發人員可以重新加載Spring Boot上的更改,而無需重新啟動服務器。這將消除每次手動部署更改的需要。

      Spring Boot在發布它的第一個版本時沒有這個功能。這是開發人員最需要的功能。

      DevTools模塊完全滿足開發人員的需求。該模塊將在生產環境中被禁用。它還提供H2數據庫控制臺以更好地測試應用程序。

      org.springframework.boot spring-boot-devtools true

      1

      19、Spring Boot中的監視器是什么?

      答:

      Spring boot actuator是spring啟動框架中的重要功能之一。

      Spring boot監視器可幫助您訪問生產環境中正在運行的應用程序的當前狀態。有幾個指標必須在生產環境中進行檢查和監控。即使一些外部應用程序可能正在使用這些服務來向相關人員觸發警報消息。監視器模塊公開了一組可直接作為HTTP URL訪問的REST端點來檢查狀態。

      20、如何在Spring Boot中禁用Actuator端點安全性?

      答:

      默認情況下,所有敏感的HTTP端點都是安全的,只有具有ACTUATOR角色的用戶才能訪問它們。安全性是使用標準的HttpServletRequest.isUserInRole方法實施的。 我們可以使用來禁用安全性。只有在執行機構端點在防火墻后訪問時,才建議禁用安全性。

      21、如何在自定義端口上運行Spring Boot應用程序?

      答:

      為了在自定義端口上運行Spring Boot應用程序,您可以在application.properties中指定端口。

      server.port=8090

      22、什么是YAML?

      答:

      YAML是一種人類可讀的數據序列化語言。它通常用于配置文件。

      與屬性文件相比,如果我們想要在配置文件中添加復雜的屬性,YAML文件就更加結構化,而且更少混淆??梢钥闯鯵AML具有分層配置數據。

      23、如何實現Spring Boot應用程序的安全性?

      答:

      為了實現Spring Boot的安全性,我們使用spring-boot-starter-security依賴項,并且必須添加安全配置。它只需要很少的代碼。配置類將必須擴展WebSecurityConfigurerAdapter并覆蓋其方法。

      24、如何集成Spring Boot和ActiveMQ?

      答:

      對于集成Spring Boot和ActiveMQ,我們使用依賴關系。 它只需要很少的配置,并且不需要樣板代碼。

      25、如何使用Spring Boot 實現分頁和排序?

      答:

      使用Spring Boot實現分頁非常簡單。使用Spring Data-JPA可以實現將可分頁的傳遞給存儲庫方法。

      26、什么是Swagger?你用Spring Boot實現了它嗎?

      答:

      Swagger廣泛用于可視化API,使用Swagger UI為前端開發人員提供在線沙箱。Swagger是用于生成RESTful Web服務的可視化表示的工具,規范和完整框架實現。它使文檔能夠以與服務器相同的速度更新。當通過Swagger正確定義時,消費者可以使用最少量的實現邏輯來理解遠程服務并與其進行交互。因此,Swagger消除了調用服務時的猜測。

      27、什么是Spring Profifiles?

      答:

      Spring Profiles允許用戶根據配置文件(dev,test,prod 等)來注冊bean。

      因此,當應用程序在開發中運行時,只有某些 bean可以加載,而在PRODUCTION中,某些其他bean可以加載。假設我們的要求是Swagger文檔僅適用于QA環境,并且禁用所有其他文檔。這可以使用配置文件來完成。Spring Boot使得使用配置文件非常簡單。

      28、什么是Spring Batch?

      答:

      Spring Boot Batch提供可重用的函數,這些函數在處理大量記錄時非常重要,包括日志/跟蹤,事務管理,作業處理統計信息,作業重新啟動,跳過和資源管理。它還提供了更先進的技術服務和功能,通過優化和分區技術,可以實現極高批量和高性能批處理作業。簡單以及復雜的大批量批處理作業可以高度可擴展的方式利用框架處理重要大量的信息。

      29、什么是FreeMarker 模板?

      答:

      FreeMarker是一個基于Java的模板引擎,最初專注于使用MVC軟件架構進行動態網頁生成。使用Freemarker的主要優點是表示層和業務層的完全分離。程序員可以處理應用程序代碼,而設計人員可以處理html頁面設計。最后使用freemarker可以將這些結合起來,給出最終的輸出頁面。

      30、如何使用Spring Boot實現異常處理?

      答:

      Spring提供了一種使用ControllerAdvice處理異常的非常有用的方法。 我們通過實現一個ControlerAdvice類,來處理控制器類拋出的所有異常。

      31、您使用了哪些starter maven依賴項?

      答:

      使用了下面的一些依賴項

      spring-boot-starter-activemq

      spring-boot-starter-security

      32、什么是CSRF攻擊?

      答:

      CSRF代表跨站請求偽造。這是一種攻擊,迫使最終用戶在當前通過身份驗證的Web應用程序上執行不需要的操作。CSRF攻擊專門針對狀態改變請求,而不是數據竊取,因為攻擊者無法查看對偽造請求的響應。

      這有助于增加更少的依賴關系,并減少版本的沖突。

      33、什么是WebSockets?

      答:

      WebSocket是一種計算機通信協議,通過單個TCP連接提供全雙工通信信道。

      1、WebSocket是雙向的-使用WebSocket客戶端或服務器可以發起消息發送。

      2、WebSocket是全雙工的 -客戶端和服務器通信是相互獨立的。

      3、單個TCP連接 -初始連接使用HTTP,然后將此連接升級到基于套接字的連接。然后這個單一連接用于所有未來的通信。

      4、Light-與http相比,WebSocket消息數據交換要輕得多。

      34、什么是AOP?

      答:

      在軟件開發過程中,跨越應用程序多個點的功能稱為交叉問題。這些交叉問題與應用程序的主要業務邏輯不同。因此,將這些橫切關注與業務邏輯分開是面向方面編程(AOP)的地方。

      35、什么是Apache Kafka?

      答:

      Apache Kafka是一個分布式發布-訂閱消息系統。它是一個可擴展的,容錯的發布-訂閱消息系統,它使我們能夠構建分布式應用程序。

      這是一個Apache頂級項目。Kafka適合離線和在線消息消費。

      36、我們如何監視所有Spring Boot微服務?

      答:

      Spring Boot提供監視器端點以監控各個微服務的度量。這些端點對于獲取有關應用程序的信息(如它們是否已啟動)以及它們的組件(如數據庫等)是否正常運行很有幫助。

      但是,使用監視器的一個主要缺點或困難是,我們必須單獨打開應用程序的知識點以了解其狀態或健康狀況。想象一下涉及50個應用程序的微服務,管理員將不得不擊中所有50個應用程序的執行終端。為了幫助我們處理這種情況,我們將使用位于的開源項目。

      它建立在Spring Boot Actuator之上,它提供了一個Web UI,使我們能夠可視化多個應用程序的度量。

      37、Spring Boot的配置文件有哪幾種格式?它們有什么區別?

      答:

      properties和yml,它們的區別主要是書寫格式不同。

      1)properties

      app.user.name = javastack

      2)yml

      app:

      user:

      name:

      javastack

      另外,.yml格式不支持@PropertySource注解導入配置。

      38、開啟Spring Boot特性有哪幾種方式?

      答:

      1)繼承spring-boot-starter-parent項目

      2)導入spring-boot-dependencies項目依賴

      39、Spring Boot的目錄結構是怎樣的?

      答:

      cn+- javastack +- MyApplication.java |+- customer | +- Customer.java | +- CustomerController.java | +- CustomerService.java | +- CustomerRepository.java |+- order +- Order.java +- OrderController.java +- OrderService.java +- OrderRepository.java

      1

      這個目錄結構是主流及推薦的做法,而在主入口類上加上@SpringBootApplication注解來開啟Spring Boot的各項能力,如自動配置、組件掃描等。

      40、運行Spring Boot有哪幾種方式?

      答:

      1)打包用命令或者放到容器中運行

      2)用Maven/Gradle插件運行

      3)直接執行main方法運行

      41、Spring Boot自動配置原理是什么?

      答:

      注解 @EnableAutoConfiguration, @Configuration, @ConditionalOnClass 就是自動配置的核心,首先它得是一個配置文件,其次根據類路徑下是否有這個類去自動配置。

      42、如何在Spring Boot啟動的時候運行一些特定的代碼?

      答:

      可以實現接口ApplicationRunner或者CommandLineRunner,這兩個接口實現方式一樣,它們都只提供了一個run方法。

      43、Spring Boot有哪幾種讀取配置的方式?

      答:

      Spring Boot 可以通過@PropertySource,@Value,@Environment, @ConfigurationProperties 來綁定變量。

      44、Spring Boot支持哪些日志框架?推薦和默認的日志框架是哪個?

      答:

      Spring Boot支持Java Util Logging, Log4j2, Lockback作為日志框架,如果你使用Starters啟動器,Spring Boot將使用Logback 作為默認日志框架。

      45、Spring Boot如何定義多套不同環境配置?

      答:

      提供多套配置文件,如:

      運行時指定具體的配置文件。

      46、Spring Boot可以兼容老Spring項目嗎,如何做?

      答:

      可以兼容,使用@ImportResource注解導入老Spring項目配置文件。

      47、保護Spring Boot應用有哪些方法?

      答:

      在生產中使用HTTPS

      使用Snyk檢查你的依賴關系

      升級到最新版本

      啟用CSRF保護

      使用內容安全策略防止XSS攻擊

      48、Spring Boot 2.X 有什么新特性?與1.X有什么區別?

      答:

      配置變更

      JDK 版本升級

      第三方類庫升級

      響應式 Spring 編程支持

      HTTP/2 支持

      配置屬性綁定

      更多改進與加強…

      49、如何重新加載Spring Boot上的更改,而無需重新啟動服務器?

      答:

      這可以使用DEV工具來實現。通過這種依賴關系,您可以節省任何更改,嵌入式tomcat將重新啟動。

      Spring Boot有一個開發工具(DevTools)模塊,它有助于提高開發人員的生產力。Java開發人員面臨的一個主要挑戰是將文件更改自動部署到服務器并自動重啟服務器。

      開發人員可以重新加載Spring Boot上的更改,而無需重新啟動服務器。這將消除每次手動部署更改的需要。Spring Boot在發布它的第一個版本時沒有這個功能。

      這是開發人員最需要的功能。DevTools模塊完全滿足開發人員的需求。該模塊將在生產環境中被禁用。它還提供H2數據庫控制臺以更好地測試應用程序。

      org.springframework.boot spring-boot-devtools true

      1

      2

      3

      50、springboot集成mybatis的過程

      答:

      添加mybatis的starter maven依賴

      org.mybatis.spring.boot mybatis-spring-boot-starter 1.2.0

      1

      2

      3

      在mybatis的接口中添加@Mapper注解

      在application.yml配置數據源信息

      51、Spring Boot、Spring MVC 和 Spring 有什么區別?

      答:

      SpringFrame

      SpringFramework最重要的特征是依賴注入。所有SpringModules不是依賴注入就是IOC控制反轉。

      當我們恰當的使用DI或者是IOC的時候,我們可以開發松耦合應用。松耦合應用的單元測試可以很容易的進行。

      SpringMVC

      Spring MVC提供了一種分離式的方法來開發Web應用。通過運用像DispatcherServelet,MoudlAndView和ViewResolver等一些簡單的概念,開發Web應用將會變的非常簡單。

      SpringBoot

      Spring和SpringMVC的問題在于需要配置大量的參數。

      /WEB-INF/views/ .jsp

      1

      Spring Boot通過一個自動配置和啟動的項來目解決這個問題。為了更快的構建產品就緒應用程序,Spring Boot提供了一些非功能性特征。

      52、什么是 Spring Boot Stater ?

      答:

      啟動器是一套方便的依賴沒描述符,它可以放在自己的程序中。你可以一站式的獲取你所需要的Spring和相關技術,而不需要依賴描述符的通過示例代碼搜索和復制黏貼的負載。

      例如,如果你想使用Sping和JPA訪問數據庫,只需要你的項目包含spring-boot-starter-data-jpa依賴項,你就可以完美進行。

      問題四 你能否舉一個例子來解釋更多Staters的內容?

      讓我們來思考一個Stater的例子-Spring Boot Stater Web。

      如果你想開發一個web應用程序或者是公開REST服務的應用程序。Spring Boot Start Web是首選。讓我們使用Spring Initializr 創建一個Spring Boot Start Web的快速項目。

      Spring Boot Start Web的依賴項

      org.springframework.boot spring-boot-starter-web

      1

      下面的截圖是添加進我們應用程序的不同的依賴項

      依賴項可以被分為

      任何經典的Web應用程序都會使用所有這些依賴項。Spring Boot Starter Web預先打包了這些依賴項。

      作為一個開發者,我不需要再擔心這些依賴項和它們的兼容版本。

      53、Spring Boot 還提供了其它的哪些 Starter Project Options?

      答:

      Spring Boot 也提供了其它的啟動器項目包括,包括用于開發特定類型應用程序的典型依賴項。

      spring-boot-starter-web-services - SOAP Web Services

      spring-boot-starter-web - Web 和 RESTful 應用程序

      spring-boot-starter-test - 單元測試和集成測試

      spring-boot-starter-jdbc - 傳統的 JDBC

      spring-boot-starter-hateoas - 為服務添加 HATEOAS 功能

      spring-boot-starter-security - 使用 SpringSecurity 進行身份驗證和授權

      spring-boot-starter-data-jpa - 帶有 Hibeernate 的 Spring Data JPA

      spring-boot-starter-data-rest - 使用 Spring Data REST 公布簡單的 REST 服務

      54、Spring是如何快速創建產品就緒應用程序的?

      答:

      Spring Boot致力于快速產品就緒應用程序。為此,它提供了一些譬如高速緩存,日志記錄,監控和嵌入式服務器等開箱即用的非功能性特征。

      spring-boot-starter-actuator-使用一些如監控和跟蹤應用的高級功能

      spring-boot-starter-undertow, spring-boot-starter-jetty,

      spring-boot-starter-tomcat - 選擇您的特定嵌入式Servlet容器

      spring-boot-starter-logging-使用logback進行日志記錄

      spring-boot-starter-cache-啟用Spring Framework的緩存支持

      Spring2和Spring5所需要的最低Java版本是什么?

      Spring Boot2.0需要Java8或者更新的版本。Java6和Java7已經不再支持。

      推薦閱讀:

      https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.0.0-M1-Release-Notes

      55、創建一個Spring Boot Project的最簡單的方法是什么?

      答:

      Spring Initializr是啟動Spring Boot Projects的一個很好的工具。

      就像上圖中所展示的一樣,我們需要做一下幾步:

      登錄Spring Initializr,按照以下方式進行選擇:

      選擇com.in28minutes.springboot為組

      選擇studet-services為組件

      選擇下面的依賴項

      Web

      Actuator

      DevTools

      點擊生GenerateProject

      將項目導入Eclipse。文件-導入-現有的Maven項目

      56、Spring Initializr是創建Spring Boot Projects的唯一方法嗎?

      答:

      不是的。

      Spring Initiatlizr讓創建Spring Boot項目變的很容易,但是,你也可以通過設置一個maven項目并添加正確的依賴項來開始一個項目。

      在我們的Spring 課程中,我們使用兩種方法來創建項目。

      第一種方法是start spring io

      另外一種方法是在項目的標題為“Basic Web Application”處進行手動設置。

      手動設置一個maven項目

      這里有幾個重要的步驟:

      在Eclipse中,使用文件 - 新建 Maven 項目來創建一個新項目添加依賴項。

      添加maven插件。

      添加 Spring Boot 應用程序類。

      到這里,準備工作已經做好!

      57、如何使用SpringBoot自動重裝我的應用程序?

      答:

      使用Spring Boot開發工具。

      把Spring Boot開發工具添加進入你的項目是簡單的。

      把下面的依賴項添加至你的Spring Boot Project pom.xml中

      重啟應用程序,然后就可以了。

      同樣的,如果你想自動裝載頁面,有可以看看FiveReload

      http://www.logicbig.com/tutorials/spring-framework/spring-boot/boot-live-reload/

      在我測試的時候,發現了LiveReload漏洞,如果你測試時也發現了,請一定要告訴我們。

      58、 什么是嵌入式服務器?我們為什么要使用嵌入式服務器呢?

      答:

      思考一下在你的虛擬機上部署應用程序需要些什么。

      第一步: 安裝 Java

      第二部: 安裝 Web 或者是應用程序的服務器(Tomat/Wbesphere/Weblogic 等等)

      第三部: 部署應用程序war包如果我們想簡化這些步驟,應該如何做呢?

      讓我們來思考如何使服務器成為應用程序的一部分你只需要一個安裝了 Java 的虛擬機,就可以直接在上面部署應用程序了, 是不是很爽?

      這個想法是嵌入式服務器的起源。

      當我們創建一個可以部署的應用程序的時候,我們將會把服務器(例如,tomcat)嵌入到可部署的服務器中。

      例如,對于一個Spring Boot應用程序來說,你可以生成一個包含Embedded Tomcat的應用程序

      jar。你就可以想運行正常Java應用程序一樣來運行web應用程序了。

      嵌入式服務器就是我們的可執行單元包含服務器的二進制文件(例如,tomcat.jar)。

      59、如何在Spring Boot中添加通用的JS代碼?

      答:

      在源文件夾下,創建一個名為static的文件夾。然后,你可以把你的靜態的內容放在這里面。

      例如,myapp.js的路徑是resources\static\js\myapp.js

      你可以參考它在jsp中的使用方法

      1

      兩種方法:

      方法 1:關閉安全驗證

      application.properties

      management.security.enabled:FALSE

      方法二:在日志中搜索密碼并傳遞至請求標頭中

      60、什么是Spring Date?

      答:

      來自://projects.spring.io/spring- data/

      Spring Data的使命是在保證底層數據存儲特殊性的前提下,為數據訪問提供一個熟悉的,一致性的,基于Spring的編程模型。這使得使用數據訪問技術,關系數據庫和非關系數據庫,map-reduce框架以及基于云的數據服務變得很容易。

      為了讓它更簡單一些,Spring Data提供了不受底層數據源限制的Abstractions接口。

      下面來舉一個例子

      org.springframework.boot spring-boot-devtools runtime {

      1

      你可以定義一簡單的庫,用來插入,更新,刪除和檢索代辦事項,而不需要編寫大量的代碼。

      61、什么是Spring Data REST?

      答:

      Spring Data TEST可以用來發布關于Spring數據庫的HATEOAS RESTful資源。

      下面是一個使用JPA的例子

      @RepositoryRestResource(collectionResourceRel = "todos", path = "todos") public interface TodoRepository extends PagingAndSortingRepository {

      1

      不需要寫太多代碼,我們可以發布關于Spring數據庫的RESTful API。

      下面展示的是一些關于TEST服務器的例子

      POST

      URL:http://localhost:8080/todos

      Use Header:Content-Type:Type:application/json

      Request Content

      代碼如下

      { "user": "Jill", "desc": "Learn Hibernate", "done": false }

      1

      響應內容

      { "user": "Jill", "desc": "Learn Hibernate", "done": false, "_links": { "self": { "href": "http://localhost:8080/todos/1" },"todo": { "href": "http://localhost:8080/todos/1" } } }

      1

      響應包含新創建資源的href。

      62、path=”users”, collectionResourceRel=”users”如何與Spring Data Rest一起使用?

      答:

      @RepositoryRestResource(collectionResourceRel = "users", path = "users") public interface UserRestRepository extends PagingAndSortingRepository

      1

      path-這個資源要導出的路徑段。

      collectionResourceRel-生成指向集合資源的鏈接時使用的rel值。在生成HATEOAS鏈接時使用。

      63、當Spring Boot應用程序作為Java應用程序運行時,后臺會發生什么?

      答:

      如果你使用Eclipse IDE,Eclipse maven 插件確保依賴項或者類文件的改變一經添加,就會被編譯并在目標文件中準備好!在這之后,就和其它的Java應用程序一樣了。

      當你啟動java應用程序的時候,spring boot自動配置文件就會魔法般的啟用了。

      當Spring Boot應用程序檢測到你正在開發一個web應用程序的時候,它就會啟動tomcat。

      64、我們能否在spring-boot-starter-web中用jetty代替 tomcat?

      答:

      在 spring-boot-starter-web 移除現有的依賴項,并把下面這些添加進去。

      org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-tomcat org.springframework.boot spring-boot-starter-jetty

      1

      2

      3

      65、如何使用Spring Boot生成一個WAR文件?

      答:

      推薦閱讀:

      https://spring.io/guides/gs/convert-jar-to-war/

      下面有spring說明文檔直接的鏈接地址:

      https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#build-tool-plugins-maven-packaging

      66、如何使用Spring Boot部署到不同的服務器?

      答:

      你需要做下面兩個步驟:

      在一個項目中生成一個war文件。

      將它部署到你最喜歡的服務器(websphere或者Weblogic或者Tomcat and so on)。

      第一步:這本入門指南應該有所幫助:

      https://spring.io/guides/gs/convert-jar-to-war/

      第二步:取決于你的服務器。

      67、RequestMapping和GetMapping的不同之處在哪里?

      答:

      RequestMapping具有類屬性的,可以進行GET,POST,PUT或者其它的注釋中具有的請求方法。

      GetMapping是GET 請求方法中的一個特例。它只是ResquestMapping的一個延伸,目的是為了提高清晰度。

      68、為什么我們不建議在實際的應用程序中使用Spring Data Rest?

      答:

      我們認為Spring Data Rest很適合快速原型制造!在大型應用程序中使用需要謹慎。

      通過Spring Data REST你可以把你的數據實體作為RESTful服務直接發布。

      當你設計RESTful服務器的時候,最佳實踐表明,你的接口應該考慮到兩件重要的事情:

      1.你的模型范圍。

      2.你的客戶。

      通過With Spring Data REST,你不需要再考慮這兩個方面,只需要作為 TEST 服務發布實體。

      這就是為什么我們建議使用Spring Data Rest在快速原型構造上面,或者作為項目的初始解決方法。對于完整演變項目來說,這并不是一個好的注意。

      69、在Spring Initializer中,如何改變一個項目的包名字?

      答:

      好消息是你可以定制它。點擊鏈接“轉到完整版本”。你可以配置你想要修改的包名稱!

      70、可以配置application.propertierde的完整的屬性列表在哪里可以找到?

      答:

      這里是完整的指南:

      https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html

      71、JPA和Hibernate有哪些區別?

      答:

      簡而言之

      JPA 是一個規范或者接口

      Hibernate是JPA的一個實現

      當我們使用JPA的時候,我們使用javax.persistence包中的注釋和接口時,不需要使用hibernate的導入包。

      我們建議使用JPA注釋,因為哦我們沒有將其綁定到Hibernate作為實現。后來(我知道-小于百分之一的幾率),我們可以使用另一種JPA實現。

      72、使用Spring Boot啟動連接到內存數據H2的JPA應用程序需要哪些依賴項?

      答:

      在Spring Boot項目中,當你確保下面的依賴項都在類路里面的時候,你可以加載H2控制臺。

      web 啟動器h2jpa數據啟動器

      其它的依賴項在下面:

      需要注意的一些地方:

      一個內部數據內存只在應用程序執行期間存在。這是學習框架的有效方式。

      這不是你希望的真是世界應用程序的方式。

      在問題“如何連接一個外部數據庫?”中,我們解釋了如何連接一個你所選擇的數據庫。

      73、如何不通過任何配置來選擇Hibernate作為JPA的默認實現?

      答:

      因為Spring Boot是自動配置的。

      下面是我們添加的依賴項

      spring-boot-stater-data-jpa對于Hibernate和JPA有過渡依賴性。

      當Spring Boot在類路徑中檢測到Hibernate中,將會自動配置它為默認的JPA實現。

      74、指定的數據庫連接信息在哪里?它是如何知道自動連接至 H2的?

      答:

      這就是Spring Boot自動配置的魔力。

      來自:https://docs.spring.io/spring-boot/docs/current/reference/html/using-boot-auto-configuration.html

      Spring Boot auto-configuration試圖自動配置你已經添加的基于jar依賴項的Spring應用程序。

      比如說,如果HSQLDBis存在你的類路徑中,并且,數據庫連接 bean 還沒有手動配置,那么我們可以自動配置一個內存數據庫。

      進一步的閱讀:

      http://www.springboottutorial.com/spring-boot-auto-configuration

      75、我們如何連接一個像MSSQL或者orcale一樣的外部數據庫?

      答:

      讓我們以MySQL為例來思考這個問題:

      第一步-把mysql連接器的依賴項添加至pom.xml

      第二步-從pom.xml中移除H2的依賴項

      或者至少把它作為測試的范圍。

      第三步-安裝你的MySQL數據庫

      更多的來看看這里-https://github.com/in28minutes/jpa-with-hibernate#installing-and-setting-up-mysql

      第四步-配置你的MySQL數據庫連接

      配置application.properties

      第五步-重新啟動,你就準備好了!

      就是這么簡單!

      76、Spring Boot配置的默認H2數據庫的名字是上面?為什么默認的數據庫名字是testdb?

      答:

      在 application.properties里面,列出了所有的默認值

      https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html

      找到下面的屬性

      spring.datasource.name=testdb # Name of the datasource.

      如果你使用了H2內部存儲數據庫,它里面確定了Spring Boot用來安裝你的H2數據庫的名字。

      77、如果H2不在類路徑里面,會出現上面情況?

      答:

      將會報下面的錯誤

      Cannot determine embedded database driver class for database type NONE

      1

      把H2添加至pom.xml中,然后重啟你的服務器

      com.h2database h2 runtime

      1

      78、你能否舉一個以ReadOnly為事務管理的例子?

      答:

      當你從數據庫讀取內容的時候,你想把事物中的用戶描述或者是其它描述設置為只讀模式,以便于Hebernate不需要再次檢查實體的變化。這是非常高效的。

      79、發布Spring Boot用戶應用程序自定義配置的最好方法是什么?

      答:

      @Value的問題在于,您可以通過應用程序分配你配置值。更好的操作是采取集中的方法。

      你可以使用 @ConfigurationProperties定義一個配置組件。

      @Component @ConfigurationProperties("basic") public class BasicConfiguration { private boolean value; private String message; private int number;

      1

      你可以在application.properties中配置參數。

      basic.value: true basic.message: Dynamic Message basic.number: 100

      1

      80、配置文件的需求是什么?

      答:

      企業應用程序的開發是復雜的,你需要混合的環境:

      Dev

      QA

      Stage

      Production

      在每個環境中,你想要不同的應用程序配置。

      配置文件有助于在不同的環境中進行不同的應用程序配置。

      Spring和Spring Boot提供了你可以制定的功能。

      不同配置文件中,不同環境的配置是什么?

      為一個制定的環境設置活動的配置文件。

      Spring Boot將會根據特定環境中設置的活動配置文件來選擇應用程序的配置。

      81、如何使用配置文件通過Spring Boot配置特定環境的配置?

      答:

      配置文件不是設別環境的關鍵。

      在下面的例子中,我們將會用到兩個配置文件

      dev

      prod

      缺省的應用程序配置在application.properties中。讓我們來看下面的例子:

      application.properties basic.value= true basic.message= Dynamic Message basic.number= 100

      1

      2

      3

      我們想要為dev文件自定義application.properties屬性。我們需要創建一個名為application-dev.properties的文件,并且重寫我們想要自定義的屬性。

      application-dev.properties basic.message: Dynamic Message in DEV

      1

      2

      3

      一旦你特定配置了配置文件,你需要在環境中設定一個活動的配置文件。

      有多種方法可以做到這一點:

      在VM參數中使用Dspring.profiles.active=prod

      在application.properties中使用spring.profiles.active=prod

      82、我們如何使用Maven設置Spring Boot應用程序?

      答:

      我們可以像在任何其他庫中一樣在Maven項目中包含Spring Boot。

      但是,最好的方法是從spring-boot-starter-parent 項目繼承并聲明依賴于Spring Boot啟動器。這樣做可以讓我們的項目重用Spring Boot的默認設置。 繼承spring-boot-starter-parent項目非常簡單-我們只需要在pom.xml中指定一個 parent 元素:

      我們可以在Maven中央倉庫找到最新版本的spring-boot-starter-parent。上面的方式很方便但是并不一定符合實際需要。例如公司要求所有項目依賴構建從一個標準BOM開始,我們就不能按上面的方式進行。在這種情況下,我們可以進行如下引用:

      83、如何禁用特定的自動配置?

      答:

      如果我們要禁用特定的自動配置,我們可以使用@EnableAutoConfiguration注解的exclude屬性來指示它。如下禁用了數據源自動配置DataSourceAutoConfiguration :

      如果我們使用@SpringBootApplication注解。 它具有@EnableAutoConfiguration作為元注解 - 我們同樣可以配置exclude屬性來禁用自動配置:

      我們還可以使用spring.autoconfigure.exclude環境屬性禁用自動配置。在application.properties (也可以是application.yml)配

      置文件設置如下也可以達到同樣的目的:

      84、Spring boot支持哪些外部配置?

      答:

      Spring Boot支持外部配置,允許我們在各種環境中運行相同的應用程序。我們可以使用properties文件,YAML文件 ,環境變量,系統屬性和命令行選項參數來指定配置屬性。 然后,我們可以訪問使用這些屬性@Value注釋,經由綁定對象的@ConfigurationProperties注釋或Environment環境抽象類注入。

      以下是最常見的外部配置來源:

      【2021最新版】Spring Boot面試題總結(92道題含答案解析)

      命令行屬性: 命令行選項參數是以雙連字符開頭的程序參數,例如-server.port=8080 。Spring Boot將所有參數轉換為屬性,并將它們添加到環境屬性集中。

      應用程序屬性: 應用程序屬性是從application.properties文件或其YAML對應文件加載的屬性。默認情況下,Spring Boot會在當前目錄,類路徑根或其config子目錄中搜索此文件。

      特定于配置文件的屬性: 特定于配置文件的屬性從application-{profile} .properties文件或其YAML對應文件加載。{profile}占位符是指活性輪廓。這些文件與非特定屬性文件位于相同位置,并且優先于非特定屬性文件。

      85、如何對Spring Boot應用進行測試?

      答:

      在為Spring應用程序運行集成測試時,我們必須有一個ApplicationContext 。

      為了簡化測試,Spring Boot為測試提供了一個特殊的注釋@SpringBootTest 。此批注從其classes屬性指示的配置類創建 ApplicationContext。 如果未設置classes屬性,Spring Boot將搜索主配置類。

      搜索從包含測試的包開始,直到找到使用@SpringBootApplication或@SpringBootConfiguration注釋的類。 請注意,如果我們使用JUnit4 ,我們必須用@RunWith(SpringRunner.class) 裝飾測試類。

      86、Spring Boot Actuator有什么用?

      答:

      Spring Boot Actuator可以幫助你監控和管理Spring Boot應用,比如健康檢查、審計、統計和HTTP追蹤等。所有的這些特性可以通過JMX或者HTTP endpoints來獲得。

      Actuator同時還可以與外部應用監控系統整合,比如Prometheus , Graphite , DataDog , Influx , Wavefront , New Relic等。

      這些系統提供了非常好的儀表盤、圖標、分析和告警等功能,使得你可以通過統一的接口輕松的監控和管理你的應用。

      Actuator 使用 Micrometer 來整合上面提到的外部應用監控系統。這使得只要通過非常小的配置就可以集成任何應用監控系統。

      將Spring Boot Actuator集成到一個項目中非常簡單。我們需要做的就是在pom.xml文件中包含spring-boot-starter-actuator啟動器:

      Spring Boot Actuator可以使用HTT或JMX端點公開操作信息。但是,大多數應用程序都使用HTTP ,其中端點的標識和/執行器前綴形成URL路徑。 以下是Actuator提供的一些最常見的內置端點:

      auditevents: 公開審計事件信息

      env: 公開環境屬性

      health: 顯示應用程序運行狀況信息

      httptrace: 顯示HTTP跟蹤信息

      info: 顯示任意應用程序信息

      metrics: 顯示指標信息

      mappings: 顯示所有@RequestMapping路徑的列表

      scheduledtasks: 顯示應用程序中的計劃任務

      threaddump: 執行線程轉儲

      `beans:所有加載的spring bean

      更多關于Spring Boot Actuator的信息可查看Spring Boot 2.x中的Actuator 。

      請注意:生產使用Actuator務必保護好這些端點,避免未授權的訪問請求。

      87、SpringBoot 中靜態首頁默認位置可以放在哪里?

      當我們應用根目錄時,可以直接映射,將index.html放入下面的位置:

      88、SpringBoot 中靜態資源直接映射的優先級是怎樣的?

      答:

      SpringBoot靜態資源直接映射為/**,可以通過根目錄來訪問。/META-INF/resources/webjars/映射為/webjars/,通過訪問 /webjar訪問。優先級順序為:META-INF/resources>resources>static>public。

      89、繼承 WebMvcConfifigurerAdapter 抽象類,常用的重寫方法列舉幾個?

      答:

      WebMvcConfigurerAdapter實現WebMvcConfigurer接口,常用的可能需要重寫的方法有下面幾個:

      90、@SpringBootApplication引入了哪3個重要的注解?

      答:

      @SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan。其它的4個@Target、@Retention、@Documented、@Inherited,也重要,但應該不是本題想問的知識點。

      91、@SpringBootApplication注解中的屬性相當于哪幾個注解?

      答:

      等價于以默認屬性使用@Configuration,@EnableAutoConfiguration和@ComponentScan。

      總結

      Java Spring Spring Boot

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:表格怎么制作點到表格有顏色(怎樣把表格里的顏色弄成一個顏色)
      下一篇:okr管理的5個步驟(3分鐘之前已更新)
      相關文章
      | 亚洲国产精品成人久久久| 亚洲成AV人片在WWW| 亚洲av无码精品网站| 亚洲无线一二三四区手机| 色综合久久精品亚洲国产| 亚洲最大无码中文字幕| 亚洲视频在线观看视频| 亚洲精彩视频在线观看| 久久久久亚洲精品天堂久久久久久| 久久亚洲精品高潮综合色a片| 亚洲av无码专区在线观看下载| 伊人久久五月丁香综合中文亚洲 | 亚洲日韩VA无码中文字幕| 夜色阁亚洲一区二区三区| 精品久久久久久亚洲中文字幕| 日韩在线视精品在亚洲| 理论亚洲区美一区二区三区| 亚洲av永久无码天堂网| 337P日本欧洲亚洲大胆精品| www国产亚洲精品久久久日本| 亚洲精品无码久久不卡| 国产成人99久久亚洲综合精品| 亚洲精品无码专区2| 国产91精品一区二区麻豆亚洲| 伊伊人成亚洲综合人网7777| 国产亚洲精品无码成人| 亚洲国产一成人久久精品| 久热综合在线亚洲精品| 久久久久亚洲AV无码专区首JN| 亚洲欧洲综合在线| 亚洲男人的天堂久久精品| 亚洲熟妇AV一区二区三区浪潮 | 日韩亚洲产在线观看| 亚洲国产精品无码久久九九大片| 色偷偷亚洲男人天堂| 亚洲精品成人在线| 亚洲性猛交XXXX| 亚洲精品私拍国产福利在线| 亚洲最大视频网站| 亚洲熟妇无码一区二区三区|