Spring Boot的面試題

来源:https://www.cnblogs.com/pal857/archive/2020/03/22/12544608.html
-Advertisement-
Play Games

Spring Boot 是微服務中最好的 Java 框架. 我們建議你能夠成為一名 Spring Boot 的專家。本文精選了三十五個常見的Spring Boot知識點,祝你一臂之力! 問題一 Spring Boot、Spring MVC 和 Spring 有什麼區別? 1、Spring Sprin ...


Spring Boot 是微服務中最好的 Java 框架. 我們建議你能夠成為一名 Spring Boot 的專家。本文精選了三十五個常見的Spring Boot知識點,祝你一臂之力!

問題一

 

Spring Boot、Spring MVC 和 Spring 有什麼區別?

1、Spring

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

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

2、Spring MVC

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

3、SpringBoot

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

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

 

問題二

 

什麼是自動配置?

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

我們能否帶來更多的智能?當一個 MVC JAR 添加到應用程式中的時候,我們能否自動配置一些 beans?

Spring 查看(CLASSPATH 上可用的框架)已存在的應用程式的配置。在此基礎上,Spring Boot 提供了配置應用程式和框架所需要的基本配置。這就是自動配置。

 

問題三

 

什麼是 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 的依賴項

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

依賴項可以被分為:

  • Spring - core,beans,context,aop

  • Web MVC - (Spring MVC)

  • Jackson - for JSON Binding

  • Validation - Hibernate,Validation API

  • Enbedded Servlet Container - Tomcat

  • Logging - logback,slf4j

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

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

 

問題五

 

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 服務;

 

問題六

 

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 Boot 2.0 需要 Java8 或者更新的版本。Java6 和 Java7 已經不再支持。

推薦閱讀:

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

 

問題七

 

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

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

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

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

  • 選擇 com.in28minutes.springboot 為組

  • 選擇 studet-services 為組件

  • 選擇下麵的依賴項

  • Web

  • Actuator

  • DevTools

  • 點擊生 GenerateProject

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

 

問題八

 

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

不是的。

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

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

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

手動設置一個 maven 項目

這裡有幾個重要的步驟:

  • 在 Eclipse 中,使用文件 - 新建 Maven 項目來創建一個新項目

  • 添加依賴項。

  • 添加 maven 插件。

  • 添加 Spring Boot 應用程式類。

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

 

問題九

 

為什麼我們需要 spring-boot-maven-plugin?

spring-boot-maven-plugin 提供了一些像 jar 一樣打包或者運行應用程式的命令。

  • spring-boot:run 運行你的 SpringBooty 應用程式。

  • spring-boot:repackage 重新打包你的 jar 包或者是 war 包使其可執行

  • spring-boot:start 和 spring-boot:stop 管理 Spring Boot 應用程式的生命周期(也可以說是為了集成測試)。

  • spring-boot:build-info 生成執行器可以使用的構造信息。

 

問題十

 

如何使用 SpringBoot 自動重裝我的應用程式?

使用 Spring Boot 開發工具。

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

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

重啟應用程式,然後就可以了。

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

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

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

 

問題十一

 

什麼是嵌入式伺服器?我們為什麼要使用嵌入式伺服器呢?

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

第一步: 安裝 Java

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

第三部: 部署應用程式 war 包

如果我們想簡化這些步驟,應該如何做呢?

讓我們來思考如何使伺服器成為應用程式的一部分?

你只需要一個安裝了 Java 的虛擬機,就可以直接在上面部署應用程式了,
是不是很爽?

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

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

例如,對於一個 Spring Boot 應用程式來說,你可以生成一個包含 Embedded Tomcat 的應用程式 jar。你就可以想運行正常 Java 應用程式一樣來運行 web 應用程式了。

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

 

問題十二

 

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

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

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

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

錯誤:HAL browser gives me unauthorized error - Full authenticaition is required to access this resource.

該如何來修複這個錯誤呢?

兩種方法:

方法 1:關閉安全驗證

application.properties

management.security.enabled:FALSE

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

 

問題十三

 

什麼是 Spring Data?

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

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

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

下麵來舉一個例子:

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

 

問題十四

 

什麼是 Spring Data REST?

Spring Data TEST 可以用來發佈關於 Spring 資料庫的 HATEOAS RESTful 資源。

下麵是一個使用 JPA 的例子:

不需要寫太多代碼,我們可以發佈關於 Spring 資料庫的 RESTful API。

下麵展示的是一些關於 TEST 伺服器的例子

POST:

  • URL:http://localhost:8080/todos

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

  • Request Content

代碼如下:

響應內容:

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

 

問題十五

 

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

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

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

 

問題十六

 

當 Spring Boot 應用程式作為 Java 應用程式運行時,後臺會發生什麼?

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

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

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

 

問題十七

 

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

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

問題十八

 

如何使用 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

 

問題十九

 

如何使用 Spring Boot 部署到不同的伺服器?

你需要做下麵兩個步驟:

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

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

第一步:這本入門指南應該有所幫助:
https://spring.io/guides/gs/convert-jar-to-war/

第二步:取決於你的伺服器。

 

問題二十

 

RequestMapping 和 GetMapping 的不同之處在哪裡?

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

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

 

問題二十一

 

為什麼我們不建議在實際的應用程式中使用 Spring Data Rest?

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

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

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

  • 你的模型範圍。

  • 你的客戶。

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

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

 

問題二十二

 

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

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

 

問題二十三

 

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

這裡是完整的指南:

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

 

問題二十四

 

JPA 和 Hibernate 有哪些區別?

簡而言之

  • JPA 是一個規範或者介面

  • Hibernate 是 JPA 的一個實現

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

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

 

問題二十五

 

業務邊界應該從哪一層開始?

我們建議在服務層管理義務。商業業務邏輯在商業層或者服務層,與此同時,你想要執行的業務管理也在該層。

 

問題二十六

 

使用 Spring Boot 啟動連接到記憶體資料庫 H2 的 JPA 應用程式需要哪些依賴項?

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

  • web 啟動器

  • h2

  • jpa 數據啟動器

其它的依賴項在下麵:

需要註意的一些地方:

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

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

  • 在問題“如何連接一個外部資料庫?”中,我們解釋瞭如何連接一個你所選擇的資料庫。

 

問題二十七

 

如何不通過任何配置來選擇 Hibernate 作為 JPA 的預設實現?

因為 Spring Boot 是自動配置的。

下麵是我們添加的依賴項:

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

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

 

問題二十八

 

指定的資料庫連接信息在哪裡?它是如何知道自動連接至 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

 

問題二十九

 

我們如何連接一個像 MySQL 或者Orcale 一樣的外部資料庫?

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

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

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

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

第三步 - 安裝你的 MySQL 資料庫

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

第四步 - 配置你的 MySQL 資料庫連接

配置 application.properties

spring.jpa.hibernate.ddl-auto=none spring.datasource.url=jdbc:mysql://localhost:3306/todo_example spring.datasource.username=todouser spring.datasource.password=YOUR_PASSWORD  

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

就是這麼簡單!

 

問題三十

 

Spring Boot 配置的預設 H2 資料庫的名字是上面?為什麼預設的資料庫名字是 testdb?

在 application.properties 裡面,列出了所有的預設值

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

找到下麵的屬性

# Name of the datasource.

spring.datasource.name=testdb 

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

 

問題三十一

 

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

將會報下麵的錯誤

Cannot determine embedded database driver class for database type NONE

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

 

問題三十二

 

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

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

 

問題三十三

 

發佈 Spring Boot 用戶應用程式自定義配置的最好方法是什麼?

@Value 的問題在於,您可以通過應用程式分配你配置值。更好的操作是採取集中的方法。
你可以使用 @ConfigurationProperties 定義一個配置組件。

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

basic.value: true 

basic.message: Dynamic Message 

basic.number: 100

 

問題三十四

 

配置文件的需求是什麼?

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

  • Dev

  • QA

  • Stage

  • Production

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

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

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

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

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

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

問題三十五

 

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

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

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

  • dev

  • prod

預設的應用程式配置在 application.properties 中。讓我們來看下麵的例子:

application.properties

basic.value= true 

basic.message= Dynamic Message 

basic.number= 100

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

application-dev.properties

basic.message: Dynamic Message in DEV

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

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

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

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

    • 1、什麼是springboot 
      用來簡化spring應用的初始搭建以及開發過程 使用特定的方式來進行配置(properties或yml文件) 
      創建獨立的spring引用程式 main方法運行 
      嵌入的Tomcat 無需部署war文件 
      簡化maven配置 
      自動配置spring添加對應功能starter自動化配置 
      答:spring boot來簡化spring應用開發,約定大於配置,去繁從簡,just run就能創建一個獨立的,產品級別的應用

      2、Spring Boot有哪些優點? 
      答:-快速創建獨立運行的spring項目與主流框架集成 
      -使用嵌入式的servlet容器,應用無需打包成war包 
      -starters自動依賴與版本控制 
      -大量的自動配置,簡化開發,也可修改預設值 
      -準生產環境的運行應用監控 
      -與雲計算的天然集成

      3、如何重新載入Spring Boot上的更改,而無需重新啟動伺服器? 
      這可以使用DEV工具來實現。通過這種依賴關係,您可以節省任何更改,嵌入式tomcat將重新啟動。 
      Spring Boot有一個開發工具(DevTools)模塊,它有助於提高開發人員的生產力。Java開發人員面臨的一個主要挑戰是將文件更改自動部署到伺服器並自動重啟伺服器。 
      開發人員可以重新載入Spring Boot上的更改,而無需重新啟動伺服器。這將消除每次手動部署更改的需要。Spring Boot在發佈它的第一個版本時沒有這個功能。 
      這是開發人員最需要的功能。DevTools模塊完全滿足開發人員的需求。該模塊將在生產環境中被禁用。它還提供H2資料庫控制台以更好地測試應用程式。 

      org.springframework.boot 
      spring-boot-devtools 
      true 
      4、Spring Boot中的監視器是什麼? 
      Spring boot actuator是spring啟動框架中的重要功能之一。Spring boot監視器可幫助您訪問生產環境中正在運行的應用程式的當前狀態。 
      有幾個指標必須在生產環境中進行檢查和監控。即使一些外部應用程式可能正在使用這些服務來向相關人員觸發警報消息。監視器模塊公開了一組可直接作為HTTP URL訪問的REST端點來檢查狀態。

      5、什麼是YAML? 
      YAML是一種人類可讀的數據序列化語言。它通常用於配置文件。 
      與屬性文件相比,如果我們想要在配置文件中添加複雜的屬性,YAML文件就更加結構化,而且更少混淆。可以看出YAML具有分層配置數據。

      6、springboot自動配置的原理 
      在spring程式main方法中 添加@SpringBootApplication或者@EnableAutoConfiguration 
      會自動去maven中讀取每個starter中的spring.factories文件 該文件里配置了所有需要被創建spring容器中的bean

      7、springboot讀取配置文件的方式 
      springboot預設讀取配置文件為application.properties或者是application.yml

      8、springboot集成mybatis的過程 
      添加mybatis的starter maven依賴 

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

      在mybatis的介面中 添加@Mapper註解 
      在application.yml配置數據源信息

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

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

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

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

      @ComponentScan:Spring組件掃描。

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

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

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

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

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

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

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

      2)用 Maven/ Gradle 插件運行

      3)直接執行 main 方法運行

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

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

      14、Spring Boot 支持哪些日誌框架?推薦和預設的日誌框架是哪個?

      Spring Boot 支持 Java Util Logging, Log4j2, Lockback 作為日誌框架,如果你使用 Starters 啟動器,Spring Boot 將使用 Logback 作為預設日誌框架.

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

      主要有兩種方式:

      • Spring Loaded
      • Spring-boot-devtools  

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • JavaScript 如何複製一個對象?淺拷貝可以複製出原始值屬性,但是對於引用值屬性僅僅複製了一份引用。利用遞歸對每個引用值屬性的屬性進行複製,這種方式稱之為深拷貝 ...
  • 1 完整代碼下載 https://pan.baidu.com/s/1JJyVcP2KqXsd5G6eaYpgHQ 提取碼 3fzt (壓縮包名: 2020-3-20-demo.zip) 2 圖片展示 3 主要代碼 1 /** HandCreate 簡單的 圖形界面 搭建幾何體 2 construct ...
  • 開篇 在一門編程語言中,往往會提供大量的運算符。按功能來分的話,有算術運算符、賦值運算符、關係運算符、邏輯運算符、位運算符等。這些對於大家來說都不陌生。但是,本期的主角『位運算』符相對而言是比較少去使用的。因為位運算符主要針對兩個二進位數進行位運算。 巧用位運算能極大的精簡代碼和提高程式效率。所以, ...
  • 圖解Java設計模式之裝飾者模式 星巴克咖啡訂單項目(咖啡館) 方案 1 - 解決星巴克咖啡訂單項目 方案1 - 解決星巴克咖啡訂單問題分析 方案 2 - 解決星巴克咖啡訂單(好點) 方案2 - 解決星巴克咖啡訂單問題分析 裝飾者模式定義 裝飾者模式原理 裝飾者模式解決星巴克咖啡訂單 裝飾者模式下的 ...
  • 此項目為Springboot工作流版本 windows 風格,瀏覽器訪問操作使用,非桌面應用程式。 1.代碼生成器: [正反雙向](單表、主表、明細表、樹形表,快速開發利器) freemaker模版技術 ,0個代碼不用寫,生成完整的一個模塊,帶頁面、建表sql腳本、處理類、service等完整模塊 ...
  • CSDN看到一篇介紹架構設計的博客,內容提綱挈領,內容豐富。依據原文整理,加上自己的理解和總結。 推薦給大家。點擊原文可以查看出處。 原文鏈接:https://blog.csdn.net/hguisu/article/details/78258430 什麼是架構和架構本質 在軟體行業,對於什麼是架構 ...
  • 定義: 工廠方法模式:定義一個用於創建對象的介面,讓子類決定實例化哪一個類。工廠方法使一個類的實例化延遲到其子類。 代碼實例: 這裡還是接著上篇簡單工廠模式的那個例子,改成工廠方法模式。 1、創建一個抽象類 ApptEncoder /** * 抽象類 * Class ApptEncoder */ a ...
  • 定義: 簡單工廠模式:將調用者和創建者分離,實現解耦,調用者直接向工廠請求,通過工廠去選擇需要實例化的對象,用一個單獨的類來做這個創建實例的過程。 代碼實例: 問題:假設一個關於個人事務管理的項目中有許多類型的對象,其中一個是 Appointment 對象,現在需要通過一種稱為 BloggsCal ...
一周排行
    -Advertisement-
    Play Games
  • Timer是什麼 Timer 是一種用於創建定期粒度行為的機制。 與標準的 .NET System.Threading.Timer 類相似,Orleans 的 Timer 允許在一段時間後執行特定的操作,或者在特定的時間間隔內重覆執行操作。 它在分散式系統中具有重要作用,特別是在處理需要周期性執行的 ...
  • 前言 相信很多做WPF開發的小伙伴都遇到過表格類的需求,雖然現有的Grid控制項也能實現,但是使用起來的體驗感並不好,比如要實現一個Excel中的表格效果,估計你能想到的第一個方法就是套Border控制項,用這種方法你需要控制每個Border的邊框,並且在一堆Bordr中找到Grid.Row,Grid. ...
  • .NET C#程式啟動閃退,目錄導致的問題 這是第2次踩這個坑了,很小的編程細節,容易忽略,所以寫個博客,分享給大家。 1.第一次坑:是windows 系統把程式運行成服務,找不到配置文件,原因是以服務運行它的工作目錄是在C:\Windows\System32 2.本次坑:WPF桌面程式通過註冊表設 ...
  • 在分散式系統中,數據的持久化是至關重要的一環。 Orleans 7 引入了強大的持久化功能,使得在分散式環境下管理數據變得更加輕鬆和可靠。 本文將介紹什麼是 Orleans 7 的持久化,如何設置它以及相應的代碼示例。 什麼是 Orleans 7 的持久化? Orleans 7 的持久化是指將 Or ...
  • 前言 .NET Feature Management 是一個用於管理應用程式功能的庫,它可以幫助開發人員在應用程式中輕鬆地添加、移除和管理功能。使用 Feature Management,開發人員可以根據不同用戶、環境或其他條件來動態地控制應用程式中的功能。這使得開發人員可以更靈活地管理應用程式的功 ...
  • 在 WPF 應用程式中,拖放操作是實現用戶交互的重要組成部分。通過拖放操作,用戶可以輕鬆地將數據從一個位置移動到另一個位置,或者將控制項從一個容器移動到另一個容器。然而,WPF 中預設的拖放操作可能並不是那麼好用。為瞭解決這個問題,我們可以自定義一個 Panel 來實現更簡單的拖拽操作。 自定義 Pa ...
  • 在實際使用中,由於涉及到不同編程語言之間互相調用,導致C++ 中的OpenCV與C#中的OpenCvSharp 圖像數據在不同編程語言之間難以有效傳遞。在本文中我們將結合OpenCvSharp源碼實現原理,探究兩種數據之間的通信方式。 ...
  • 一、前言 這是一篇搭建許可權管理系統的系列文章。 隨著網路的發展,信息安全對應任何企業來說都越發的重要,而本系列文章將和大家一起一步一步搭建一個全新的許可權管理系統。 說明:由於搭建一個全新的項目過於繁瑣,所有作者將挑選核心代碼和核心思路進行分享。 二、技術選擇 三、開始設計 1、自主搭建vue前端和. ...
  • Csharper中的表達式樹 這節課來瞭解一下表示式樹是什麼? 在C#中,表達式樹是一種數據結構,它可以表示一些代碼塊,如Lambda表達式或查詢表達式。表達式樹使你能夠查看和操作數據,就像你可以查看和操作代碼一樣。它們通常用於創建動態查詢和解析表達式。 一、認識表達式樹 為什麼要這樣說?它和委托有 ...
  • 在使用Django等框架來操作MySQL時,實際上底層還是通過Python來操作的,首先需要安裝一個驅動程式,在Python3中,驅動程式有多種選擇,比如有pymysql以及mysqlclient等。使用pip命令安裝mysqlclient失敗應如何解決? 安裝的python版本說明 機器同時安裝了 ...