主頁 >  其他 > 一文解讀Spring全家桶 (轉)

一文解讀Spring全家桶 (轉)

2020-09-23 04:20:29 其他

Spring框架自2002年誕生以來一直備受開發者青睞,它包括SpringMVC、SpringBoot、Spring Cloud、Spring Cloud Dataflow等解決方案,有人親切的稱之為:Spring 全家桶, 

很多研發人員把spring看作心目中最好的java專案,沒有之一, 

所以這是重點也是難點,作業中必須會,面試時肯定考, 

那么,花費10分鐘,梳理Spring框架相關知識, 

Spring知識點-匯總 

spring系列包含非常多的專案,可以滿足java開發中的方方面面, 

先來看常用框架的知識點匯總,如圖:

 

一、5個常用的spring框架

1.Spring Framework

也就是我們經常說的spring框架,包括了ioc依賴注入,Context背景關系、bean管理、springmvc等眾多功能模塊,其它spring專案比如spring boot也會依賴spring框架,

 

2.Spring Boot

它的目標是簡化Spring應用和服務的創建、開發與部署,簡化了組態檔,使用嵌入式web服務器,含有諸多開箱即用的微服務功能,可以和spring cloud聯合部署,

Spring Boot的核心思想是約定大于配置,應用只需要很少的配置即可,簡化了應用開發模式,

 

3.Spring Data

是一個資料訪問及操作的工具集,封裝了多種資料源的操作能力,包括:jdbc、Redis、MongoDB等,

 

4.Spring Cloud

是一套完整的微服務解決方案,是一系列不同功能的微服務框架的集合,Spring Cloud基于Spring Boot,簡化了分布式系統的開發,集成了服務發現、配置管理、訊息總線、負載均衡、斷路器、資料監控等各種服務治理能力,比如sleuth提供了全鏈路追蹤能力,Netflix套件提供了hystrix熔斷器、zuul網關等眾多的治理組件,config組件提供了動態配置能力,bus組件支持使用RabbitMQ、kafka、Activemq等訊息佇列,實作分布式服務之間的事件通信,

 

5. Spring Security

主要用于快速構建安全的應用程式和服務,在Spring Boot和Spring Security OAuth2的基礎上,可以快速實作常見安全模型,如單點登錄,令牌中繼和令牌交換,你可以了解一下oauth2授權機制和jwt認證方式,oauth2是一種授權機制,規定了完備的授權、認證流程,JWT全稱是JSON Web Token,是一種把認證資訊包含在token中的認證實作,oauth2授權機制中就可以應用jwt來作為認證的具體實作方法, 

二、Struts的具體作用

struts是曾經非常火爆的web組合ssh中的控制層,我們知道web服務一般都采用MVC分層模型構建,就是model層負責內部資料模型,controller負責請求的分發控制,view層負責回傳給用戶展示的視圖,struts實作的就是其中控制層的角色, 

Struts采用Filter實作,針對類進行攔截,每次請求就會創建一個Action,使用struts的SSH組合已經逐漸被使用springMVC的SSM組合代替,也就是Spring-MVC+Spring+MyBatis的組合,一方面原因是由于struts對幾次安全漏洞的處理,讓大家對struts的信心受到影響;另一方面,springmvc更加的靈活,不需要額外配置,不存在和spring整合等問題,使用更加方便,所以建議以SSM框架的學習為主, 

三、常用的ORM框架

ORM就是物件關系匹配,是為了解決面向物件與關系資料庫存在的互不匹配的問題,簡單來說,就是把關系資料庫中的資料轉換成面向物件程式中的物件, 

常用的ORM框架有Hibernate和MyBatis,也就是ssh組合和ssm組合中的h與m, 

它們的特點和區別如下: 

Hibernate對資料庫結構提供了完整的封裝,實作了POJO物件與資料庫表之間的映射,能夠自動生成并執行SQL陳述句,只要定義了POJO 到資料庫表的映射關系,就可以通過Hibernate提供的方法完成資料庫操作,Hibernate符合JPA規范,就是Java持久層API, 

mybatis通過映射組態檔,將SQL所需的引數和回傳的結果欄位映射到指定物件,mybatis不會自動生成sql,需要自己定義sql陳述句,不過更方便對sql陳述句進行優化, 

總結起來:

1.hibernate配置要比mybatis復雜的多,學習成本也比mybatis高,mybatis,簡單、高效、靈活,但是需要自己維護sql;

2.hibernate功能強大、全自動、適配不同資料庫,但是非常復雜,靈活性稍差,

四、Netty簡介

Netty是一個高性能的異步事件驅動的網路通信框架,Netty對JDK原生NIO進行封裝,簡化了網路服務的開發,下文會詳細講解 

另外,同型別的框架還有mina、grizzly,不過目前使用的相對較少,一般不會在面試中出現,可以作為興趣簡單了解, 

五、RPC服務

Motan、Dubbo、gRPC都是比較常用的高性能rpc框架,可以提供完善的服務治理能力,java版本的通信層都是基于前面提到的Netty實作,它們的特點稍后介紹, 

六、其他常用框架

jersy和restEasy都是可以快速開發restful服務的框架,

和springmvc相比,這兩個框架都是基于jax-rs標準,而springmvcs基于servlet,使用自己構建的API,是兩個不同的標準, 

shiro框架是一個與spring security類似的開源的權限管理框架,用于訪問授權、認證、加密及會話管理,能夠支持單機與分布式session管理, 

相比security,shiro更加簡單易用, 

本篇文章將重點闡述Spring相關知識點,其他框架請期待下一篇

 


 

Spring知識點-詳解 

一、spring基本概念

 

本文涉及的流程與實作默認都是基于最新的5.x版本, 

spring中的幾個重要概念如下: 

1.IOC

IOC,就是控制反轉,如最左邊,拿公司招聘崗位來舉例: 

假設一個公司有產品、研發、測驗等崗位,如果是公司根據崗位要求,逐個安排人選,如圖中向下的箭頭,這是正向流程,如果反過來,不用公司來安排候選人,而是由第三方獵頭來匹配崗位和候選人,然后進行推薦,如圖中向上的箭頭,這就是控制反轉, 

在spring中,物件的屬性是由物件自己創建的,就是正向流程;如果屬性不是物件創建,而是由spring來自動進行裝配,就是控制反轉,這里的DI也就是依賴注入,就是實作控制反轉的方式,正向流程導致了物件于物件之間的高耦合,IOC可以解決物件耦合的問題,有利于功能的復用,能夠使程式的結構變得非常靈活, 

2.context背景關系和bean

spring進行IOC實作時使用的有兩個概念:context背景關系和bean, 

如中間圖所示,所有被spring管理的、由spring創建的、用于依賴注入的物件,就叫做一個bean,Spring創建并完成依賴注入后,所有bean統一放在一個叫做context的背景關系中進行管理, 

3.AOP

AOP就是面向切面編程,如右面的圖,一般程式執行流程是從controller層呼叫service層、然后service層呼叫DAO層訪問資料,最后在逐層回傳結果, 

這個是圖中向下箭頭所示的按程式執行順序的縱向處理,但是,一個系統中會有多個不同的服務,例如用戶服務、商品資訊服務等等,每個服務的controller層都需要驗證引數,都需要處理例外,如果按照圖中紅色的部分,對不同服務的縱向處理流程進行橫切,在每個切面上完成通用的功能,例如身份認證、驗證引數、處理例外等等、這樣就不用在每個服務中都寫相同的邏輯了,這就是AOP思想解決的問題, 

AOP以功能進行劃分,對服務順序執行流程中的不同位置進行橫切,完成各服務共同需要實作的功能, 

二、spring框架

上圖列出了spring框架主要包含的組件,這張圖來自spring4.x的檔案,目前最新的5.x版本中右面的portlet組件已經被廢棄掉,同時增加了用于異步回應式處理的WebFlux組件, 

并不需要對所有的組件都詳細了解,只需重點了解最常用的幾個組件實作,以及知道每個組件用來實作哪一類功能, 

圖中紅框是比較重要的組件,core組件是spring所有組件的核心;bean組件和context組件我剛才提到了,是實作IOC和依賴注入的基礎;AOP組件用來實作面向切面編程;web組件包括springmvc是web服務的控制層實作, 

三、spring中機制和實作

1.AOP

AOP的實作是通過代理模式,在呼叫物件的某個方法時,執行插入的切面邏輯,實作的方式有動態代理也叫運行時增強,比如jdk代理、CGLIB;靜態代理是在編譯時進行織入或類加載時進行織入,比如AspectJ, 

關于AOP還需要了解一下對應的Aspect、pointcut、advice等注解和具體使用方式, 

2.placeHolder動態替換

主要需要了解替換發生的時間,是在bean definition創建完成后,bean初始化之前,是通過實作BeanFactoryPostProcessor介面實作的,主要實作方式有PropertyPlaceholderConfigurer和PropertySourcesPlaceholderConfigurer,這兩個類實作邏輯不一樣,spring boot使用PropertySourcesPlaceholderConfigurer實作, 

3.事務

需要了解spring 中對事務規定的隔離型別和事務傳播型別,要知道事務的隔離級別是由具體的資料庫來實作的,在資料庫部分我會詳細介紹, 

事務的傳播型別,可以重點了解最常用的REQUIRED和SUPPORTS型別, 

4.核心借口類

  • ApplicationContext保存了ioc的整個應用背景關系,可以通過其中的beanfactory獲取到任意到bean;

  • BeanFactory主要的作用是根據bean definition來創建具體的bean;

  • BeanWrapper是對Bean的包裝,一般情況下是在spring ioc內部使用,提供了訪問bean的屬性值、屬性編輯器注冊、型別轉換等功能,方便ioc容器用統一的方式來訪問bean的屬性;

  • FactoryBean通過getObject方法回傳實際的bean物件,例如motan框架中referer對service的動態代理就是通過FactoryBean來實作的,

5.Scope

bean的scope是指bean的作用域,默認情況下是單例模式,這也是使用最多的一種方式;多例模式,即每次從beanFactory中獲取bean都會創建一個新的bean, 

request、session、global-session是在web服務中使用的scope,request每次請求都創建一個實體,session是在一個會話周期內保證只有一個實體, 

global-session在5.x版本中已經不在使用,同時增加了Application和Websocket兩種scope,分別保證在一個ServletContext與一個WebSocket中只創建一個實體, 

6.事件機制

spring的事件機制需要知道spring定義的五種標準事件,具體事件可見上圖,了解如何自定義事件和實作對應的applicationListener來處理自定義事件, 

四、spring應用相關

 

1.常用注釋

a.型別類注釋:

型別類注釋包括controller、service等,需要重點了解 

其中component和bean注解的區別如下: 

  • @Component注解在類上使用表明這個類是個組件類,需要Spring為這個類創建bean,

  • @Bean注解使用在方法上,告訴Spring這個方法將會回傳一個Bean物件,需要把回傳的物件注冊到Spring的應用背景關系中, 

b.設定類注解

重點了解@Autowire和@Qualifier以及bytype、byname等不同的自動裝配機制, 

c.web類注解

主要以了解為主,關注@RequestMapping、@GetMapping、@PostMapping等路徑匹配注解,以及@PathVariable、@RequestParam 等引數獲取注解, 

d.功能類注解

包括@ImportResource參考配置、@ComponentScan注解自動掃描、@Transactional事務注解等等,這里不一一介紹了, 

2.配置方式

需要了解配置spring的幾種方式,xml檔案配置、注解配置和使用api進行配置, 

自動裝配機制需要了解按型別匹配進行自動裝配,按bean名稱進行自動裝配,構造器中的自動裝配和自動檢測等主要的四種方式, 

還需要了解一下list、set、map等集合類屬性的配置方式以及內部bean的使用,  

五、Spring的Context的初始化流程

 

圖中左上角是三種型別的context,xml配置方式的context、springboot的context和web服務的context,不論哪種context,創建后都會呼叫到AbstractApplicationContext類的refresh方法,這個方法是我們要重點分析的, 

refresh方法中,操作共分13步: 

第1步:對重繪進行準備,包括設定開始時間、設定激活狀態、初始化context環境中的占位符,這個動作根據子類的需求由子類來執行,然后驗證是否缺失必要的properties; 

第2步:重繪并獲得內部的bean factory; 

第3步:對bean factory進行準備作業,比如設定類加載器和后置處理器、配置不進行自動裝配的型別、注冊默認的環境bean; 

第4步:為context的子類提供后置處理bean factory的擴展能力,如果子類想在bean定義加載完成后,開始初始化背景關系之前做一些特殊邏輯,可以復寫這個方法; 

第5步,執行context中注冊的bean factory后綴處理器; 

注:這里有兩種后置處理器,一種是可以注冊bean的后綴處理器,另一種是針對bean factory進行處理的后置處理器,執行的順序是,先按優先級執行可注冊bean的處理器,在按優先級執行針對beanfactory的處理器, 

對springboot來說,這一步會進行注解bean definition的決議,流程如右面小框中所示,由ConfigurationClassPostProcessor觸發、由ClassPathBeanDefinitionScanner決議并注冊到bean factory, 

第6步:按優先級順序在beanfactory中注冊bean的后綴處理器,bean后置處理器可以在bean初始化前、后執行處理; 

第7步:初始化訊息源,訊息源用來支持訊息的國際化; 

第8步:初始化應用事件廣播器,事件廣播器用來向applicationListener通知各種應用產生的事件,是一個標準的觀察者模式; 

第9步,是留給子類的擴展步驟,用來讓特定的context子類初始化其他的bean; 

第10步,把實作了ApplicationListener的bean注冊到事件廣播器,并對廣播器中的早期未廣播事件進行通知; 

第11步,凍結所有bean描述資訊的修改,實體化非延遲加載的單例bean; 

第12步,完成背景關系的重繪作業,呼叫LifecycleProcessor的onFresh()方法以及發布ContextRefreshedEvent事件; 

第13步:在finally中,執行第十三步,重置公共的快取,比如ReflectionUtils中的快取、AnnotationUtils中的快取等等; 

至此,spring的context初始化完成,這里僅介紹了最主要的主流程,建議課后閱讀原始碼來復習這個知識點,補全細節, 

六:Spring中bean的生命周期

面試中經常問到的bean的生命周期,先看綠色的部分,bean的創建程序: 

第1步:呼叫bean的構造方法創建bean;

第2步:通過反射呼叫setter方法進行屬性的依賴注入;

第3步:如果實作BeanNameAware介面的話,會設定bean的name;

第4步:如果實作了BeanFactoryAware,會把bean factory設定給bean;

第5步:如果實作了ApplicationContextAware,會給bean設定ApplictionContext;

第6步:如果實作了BeanPostProcessor介面,則執行前置處理方法;

第7步:實作了InitializingBean介面的話,執行afterPropertiesSet方法;

第8步:執行自定義的init方法;

第9步:執行BeanPostProcessor介面的后置處理方法,

這時,就完成了bean的創建程序, 

在使用完bean需要銷毀時,會先執行DisposableBean介面的destroy方法,然后在執行自定義的destroy方法, 

這部分也建議閱讀原始碼加深理解,  

七:Spring擴展       

對spring進行定制化功能擴展時,可以選擇如下一些擴展點:

1.BeanFactoryPostProcessor

是beanFactory后置處理器,支持在bean factory標準初始化完成后,對bean factory進行一些額外處理,在講context初始化流程時介紹過,這時所有的bean的描述資訊已經加載完畢,但是還沒有進行bean初始化,例如前面提到的PropertyPlaceholderConfigurer,就是在這個擴展點上對bean屬性中的占位符進行替換, 

2.BeanDefinitionRegistryPostProcessor

它擴展自BeanFactoryPostProcessor,在執行BeanFactoryPostProcessor的功能前,提供了可以添加bean definition的能力,允許在初始化一般bean前,注冊額外的bean,例如可以在這里根據bean的scope創建一個新的代理bean, 

3.BeanPostProcessor

提供了在bean初始化之前和之后插入自定義邏輯的能力,與BeanFactoryPostProcessor的區別是處理的物件不同,BeanFactoryPostProcessor是對beanfactory進行處理,BeanPostProcessor是對bean進行處理, 

注:上面這三個擴展點,可以通過實作Ordered和PriorityOrdered介面來指定執行順序,實作PriorityOrdered介面的processor會先于實作Ordered介面的執行, 

4.ApplicationContextAware

可以獲得ApplicationContext及其中的bean,當需要在代碼中動態獲取bean時,可以通過實作這個介面來實作,

5.InitializingBean

可以在bean初始化完成,所有屬性設定完成后執行特定邏輯,例如對自動裝配對屬性進行驗證等等,

6.DisposableBean

用于在bean被銷毀前執行特定的邏輯,例如做一些回收作業等,

7.ApplicationListener

用來監聽spring的標準應用事件或者自定義事件,

八、springboot相關的知識點

1.啟動流程

主要步驟首先要配置environment,然后準備context背景關系,包括執行applicationContext的后置處理、初始化initializer、通知listener處理contextPrepared和contextLoaded事件,最后執行refreshContext,也就是前面介紹過的AbstractApplicationContext類的refresh方法,

2.組態檔

然后要知道在Spring Boot中有兩種背景關系,一種是bootstrap, 另外一種是application, 

bootstrap是應用程式的父背景關系,也就是說bootstrap會先于applicaton加載,bootstrap主要用于從額外的資源來加載配置資訊,還可以在本地外部組態檔中解密屬性,bootstrap里面的屬性會優先加載,默認也不能被本地相同配置覆寫,

3.注解

@SpringBootApplication包含了@ComponentScan、@EnableAutoConfiguration、@SpringBootConfiguration三個注解 

而@SpringBootConfiguration注解包含了@Configuration注解,也就是springboot的自動配置功能, 

@Conditional注解就是控制自動配置的生效條件的注解,例如bean或class存在、不存在時進行配置,當滿足條件時進行配置等等, 

4.特色模塊

  • starter是springboot提供的無縫集成功能的一種方式,使用某個功能時開發者不需要關注各種依賴庫的處理,不需要具體的配置資訊,由Spring Boot自動配置進行bean的創建,例如需要使用web功能時,只需要在依賴中引入spring-boot-starter-web即可,

  • actuator是用來對應用程式進行監視和管理,通過restful api請求來監管、審計、收集應用的運行情況,

  • devtools提供了一系列開發工具的支持,來提高開發效率,例如熱部署能力等,

  • CLI就是命令列介面,是一個命令列工具,支持使用Groovy腳本,可以快速搭建spring原型專案, 

以上為Spring框架需要掌握的內容,前面提到的核心機制、核心流程,建議閱讀原始碼加深理解, 

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/109074.html

標籤:其他

上一篇:Jenkins 顯示語言-英文切換中文

下一篇:Git上傳到碼云及其常見問題詳解

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more