-
當(dāng)前位置:首頁 > 創(chuàng)意學(xué)院 > 技術(shù) > 專題列表 > 正文
框架(框架結(jié)構(gòu)和磚混結(jié)構(gòu)的區(qū)別)
大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于框架的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。
開始之前先推薦一個非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計劃、工作報告、論文、代碼、作文、做題和對話答疑等等
只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準(zhǔn),寫出的就越詳細(xì),有微信小程序端、在線網(wǎng)頁版、PC客戶端
官網(wǎng):https://ai.de1919.com。
創(chuàng)意嶺作為行業(yè)內(nèi)優(yōu)秀的企業(yè),服務(wù)客戶遍布全球各地,如需了解SEO相關(guān)業(yè)務(wù)請撥打電話175-8598-2043,或添加微信:1454722008
本文目錄:
一、什么是一榀框架?
一榀框架是指一榀框架,應(yīng)該就是指一個剖面,這個剖面可以表達(dá)一個平面內(nèi)的梁柱構(gòu)件。
通常形容建筑結(jié)構(gòu);比如指一個剖面,這個剖面可以完整的表達(dá)一個平面內(nèi)的梁柱構(gòu)件,主要在圖上表達(dá)框架梁柱的形狀、配筋、鋼筋的布置和搭接錨固情況等等。
榀是一個中國漢字,讀音為pǐn,生僻字,用于建筑學(xué)。過去對木屋架通稱的量詞,現(xiàn)在通常是指一個平面結(jié)構(gòu)體,無論是鋼、木還是鋼結(jié)構(gòu)都延用這個。
基本字義
量詞:一個房架稱一榀;鋼結(jié)構(gòu)中一般指由柱和梁構(gòu)成的一個框架立面。
建筑學(xué):過去對木屋架通稱的量詞,現(xiàn)在通常是指一個平面結(jié)構(gòu)體,無論是鋼、木還是鋼結(jié)構(gòu)都延用這個。
鋼結(jié)構(gòu):鋼結(jié)構(gòu)中一般指由柱和梁構(gòu)成的一個框架立面。
擴(kuò)展資料
與此相關(guān):
桁(héng)架 (jià)(truss):一種由桿件彼此在兩端用鉸鏈連接而成的結(jié)構(gòu)。桁架由直桿組成的一般具有三角形單元的平面或空間結(jié)構(gòu),桁架桿件主要承受軸向拉力或壓力,從而能充分利用材料的強(qiáng)度,在跨度較大時可比實腹梁節(jié)省材料,減輕自重和增大剛度。
桁架的優(yōu)點是桿件主要承受拉力或壓力,可以充分發(fā)揮材料的作用,節(jié)約材料,減輕結(jié)構(gòu)重量。常用的有鋼桁架、鋼筋混凝土桁架、預(yù)應(yīng)力混凝土桁架、木桁架、鋼與木組合桁架、鋼與混凝土組合桁架。
參考資料來源:百度百科-榀
參考資料來源:百度百科-單榀框架
二、Java中框架是干什么的?
框架是什么:框架就是一套規(guī)范。既然是規(guī)范,你使用這個框架就要遵守這個框架所規(guī)定的約束。在Java開發(fā)中,框架是用一套規(guī)則+一群jar包來表示的。
意義:框架不僅僅只完成這些簡單的約束,更重要的是,框架為我們封裝好了一些冗余,且重用率低的代碼。并且使用反射與動態(tài)代理機(jī)制,將代碼實現(xiàn)了通用性。比如如果你說servlet開發(fā),你需要在servlet獲取表單的參數(shù),每次都要獲取很麻煩,而struts底層就使用反射機(jī)制和攔截器機(jī)制幫助我們獲取表單的值,我們就不用每次都手寫那些代碼了,簡化了開發(fā),當(dāng)然你必須遵守一些規(guī)定來配置。
還有比如hibernate,它提供了一些通用性很強(qiáng)的對數(shù)據(jù)庫的增刪改差,如果你使用jdbc每次做一些簡單的crud的時候都必須寫sql,但使用hibernate就不需要這么麻煩了,直接save,update就可以了。當(dāng)然,你還是要遵循其一些規(guī)范而配置。同理spring也是如此。
三、java框架有哪些常用框架
十大常用框架:
一、SpringMVC
二、Spring
三、Mybatis
四、Dubbo
五、Maven
六、RabbitMQ
七、Log4j
八、Ehcache
九、Redis
十、Shiro
延展閱讀:
一、SpringMVC
Spring Web MVC是一種基于Java的實現(xiàn)了Web MVC設(shè)計模式的請求驅(qū)動類型的輕量級Web框架,即使用了MVC架構(gòu)模式的思想,將web層進(jìn)行職責(zé)解耦,基于請求驅(qū)動指的就是使用請求-響應(yīng)模型,框架的目的就是幫助我們簡化開發(fā),Spring Web MVC也是要簡化我們?nèi)粘eb開發(fā)的。
模型(Model )封裝了應(yīng)用程序的數(shù)據(jù)和一般他們會組成的POJO。
視圖(View)是負(fù)責(zé)呈現(xiàn)模型數(shù)據(jù)和一般它生成的HTML輸出,客戶端的瀏覽器能夠解釋。
控制器(Controller )負(fù)責(zé)處理用戶的請求,并建立適當(dāng)?shù)哪P?,并把它傳遞給視圖渲染。
Spring的web模型 - 視圖 - 控制器(MVC)框架是圍繞著處理所有的HTTP請求和響應(yīng)的DispatcherServlet的設(shè)計。
Spring Web MVC處理請求的流程
具體執(zhí)行步驟如下:
1、 首先用戶發(fā)送請求————>前端控制器,前端控制器根據(jù)請求信息(如URL)來決定選擇哪一個頁面控制器進(jìn)行處理并把請求委托給它,即以前的控制器的控制邏輯部分;圖2-1中的1、2步驟;
2、 頁面控制器接收到請求后,進(jìn)行功能處理,首先需要收集和綁定請求參數(shù)到一個對象,這個對象在Spring Web MVC中叫命令對象,并進(jìn)行驗證,然后將命令對象委托給業(yè)務(wù)對象進(jìn)行處理;處理完畢后返回一個ModelAndView(模型數(shù)據(jù)和邏輯視圖名);圖2-1中的3、4、5步驟;
3、 前端控制器收回控制權(quán),然后根據(jù)返回的邏輯視圖名,選擇相應(yīng)的視圖進(jìn)行渲染,并把模型數(shù)據(jù)傳入以便視圖渲染;圖2-1中的步驟6、7;
4、 前端控制器再次收回控制權(quán),將響應(yīng)返回給用戶,圖2-1中的步驟8;至此整個結(jié)束。
二、Spring
2.1、IOC容器:http://www.cnblogs.com/linjiqin/archive/2013/11/04/3407126.html
IOC容器就是具有依賴注入功能的容器,IOC容器負(fù)責(zé)實例化、定位、配置應(yīng)用程序中的對象及建立這些對象間的依賴。應(yīng)用程序無需直接在代碼中new相關(guān)的對象,應(yīng)用程序由IOC容器進(jìn)行組裝。在Spring中BeanFactory是IOC容器的實際代表者。
2.2、AOP:http://blog.csdn.net/moreevan/article/details/11977115
簡單地說,就是將那些與業(yè)務(wù)無關(guān),卻為業(yè)務(wù)模塊所共同調(diào)用的邏輯或責(zé)任封裝起來,便于減少系統(tǒng)的重復(fù)代碼,降低模塊間的耦合度,并有利于未來的可操作性和可維護(hù)性。AOP代表的是一個橫向的關(guān)系
AOP用來封裝橫切關(guān)注點,具體可以在下面的場景中使用:
Authentication 權(quán)限
Caching 緩存
Context passing 內(nèi)容傳遞
Error handling 錯誤處理
Lazy loading 懶加載
Debugging調(diào)試
logging, tracing, profiling and monitoring 記錄跟蹤 優(yōu)化 校準(zhǔn)
Performance optimization 性能優(yōu)化
Persistence持久化
Resource pooling 資源池
Synchronization 同步
Transactions 事務(wù)
三、Mybatis
MyBatis 是支持普通 SQL查詢,存儲過程和高級映射的優(yōu)秀持久層框架。MyBatis 消除了幾乎所有的JDBC代碼和參數(shù)的手工設(shè)置以及結(jié)果集的檢索。MyBatis 使用簡單的 XML或注解用于配置和原始映射,將接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java對象)映射成數(shù)據(jù)庫中的記錄。
總體流程:
(1)加載配置并初始化
觸發(fā)條件:加載配置文件
將SQL的配置信息加載成為一個個MappedStatement對象(包括了傳入?yún)?shù)映射配置、執(zhí)行的SQL語句、結(jié)果映射配置),存儲在內(nèi)存中。
(2)接收調(diào)用請求
觸發(fā)條件:調(diào)用Mybatis提供的API
傳入?yún)?shù):為SQL的ID和傳入?yún)?shù)對象
處理過程:將請求傳遞給下層的請求處理層進(jìn)行處理。
(3)處理操作請求 觸發(fā)條件:API接口層傳遞請求過來
傳入?yún)?shù):為SQL的ID和傳入?yún)?shù)對象
處理過程:
(A)根據(jù)SQL的ID查找對應(yīng)的MappedStatement對象。
(B)根據(jù)傳入?yún)?shù)對象解析MappedStatement對象,得到最終要執(zhí)行的SQL和執(zhí)行傳入?yún)?shù)。
(C)獲取數(shù)據(jù)庫連接,根據(jù)得到的最終SQL語句和執(zhí)行傳入?yún)?shù)到數(shù)據(jù)庫執(zhí)行,并得到執(zhí)行結(jié)果。
(D)根據(jù)MappedStatement對象中的結(jié)果映射配置對得到的執(zhí)行結(jié)果進(jìn)行轉(zhuǎn)換處理,并得到最終的處理結(jié)果。
(E)釋放連接資源。
(4)返回處理結(jié)果將最終的處理結(jié)果返回。
MyBatis 最強(qiáng)大的特性之一就是它的動態(tài)語句功能。如果您以前有使用JDBC或者類似框架的經(jīng)歷,您就會明白把SQL語句條件連接在一起是多么的痛苦,要確保不能忘記空格或者不要在columns列后面省略一個逗號等。動態(tài)語句能夠完全解決掉這些痛苦。
四、Dubbo
Dubbo是一個分布式服務(wù)框架,致力于提供高性能和透明化的RPC(遠(yuǎn)程過程調(diào)用協(xié)議)遠(yuǎn)程服務(wù)調(diào)用方案,以及SOA服務(wù)治理方案。簡單的說,dubbo就是個服務(wù)框架,如果沒有分布式的需求,其實是不需要用的,只有在分布式的時候,才有dubbo這樣的分布式服務(wù)框架的需求,并且本質(zhì)上是個服務(wù)調(diào)用的東東,說白了就是個遠(yuǎn)程服務(wù)調(diào)用的分布式框架。
1、透明化的遠(yuǎn)程方法調(diào)用,就像調(diào)用本地方法一樣調(diào)用遠(yuǎn)程方法,只需簡單配置,沒有任何API侵入。
2、軟負(fù)載均衡及容錯機(jī)制,可在內(nèi)網(wǎng)替代F5等硬件負(fù)載均衡器,降低成本,減少單點。
3、 服務(wù)自動注冊與發(fā)現(xiàn),不再需要寫死服務(wù)提供方地址,注冊中心基于接口名查詢服務(wù)提供者的IP地址,并且能夠平滑添加或刪除服務(wù)提供者。
節(jié)點角色說明:
Provider: 暴露服務(wù)的服務(wù)提供方。
Consumer: 調(diào)用遠(yuǎn)程服務(wù)的服務(wù)消費方。
Registry: 服務(wù)注冊與發(fā)現(xiàn)的注冊中心。
Monitor: 統(tǒng)計服務(wù)的調(diào)用次調(diào)和調(diào)用時間的監(jiān)控中心。
Container: 服務(wù)運行容器。
五、Maven
Maven這個個項目管理和構(gòu)建自動化工具,越來越多的開發(fā)人員使用它來管理項目中的jar包。但是對于我們程序員來說,我們最關(guān)心的是它的項目構(gòu)建功能。
六、RabbitMQ
消息隊列一般是在項目中,將一些無需即時返回且耗時的操作提取出來,進(jìn)行了異步處理,而這種異步處理的方式大大的節(jié)省了服務(wù)器的請求響應(yīng)時間,從而提高了系統(tǒng)的吞吐量。
RabbitMQ是用Erlang實現(xiàn)的一個高并發(fā)高可靠AMQP消息隊列服務(wù)器。
Erlang是一門動態(tài)類型的函數(shù)式編程語言。對應(yīng)到Erlang里,每個Actor對應(yīng)著一個Erlang進(jìn)程,進(jìn)程之間通過消息傳遞進(jìn)行通信。相比共享內(nèi)存,進(jìn)程間通過消息傳遞來通信帶來的直接好處就是消除了直接的鎖開銷(不考慮Erlang虛擬機(jī)底層實現(xiàn)中的鎖應(yīng)用)。
AMQP(Advanced Message Queue Protocol)定義了一種消息系統(tǒng)規(guī)范。這個規(guī)范描述了在一個分布式的系統(tǒng)中各個子系統(tǒng)如何通過消息交互。
七、Log4j
日志記錄的優(yōu)先級,分為OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定義的級別。
八、Ehcache
EhCache 是一個純Java的進(jìn)程內(nèi)緩存框架,具有快速、精干等特點,是Hibernate中默認(rèn)的CacheProvider。Ehcache是一種廣泛使用的開源Java分布式緩存。主要面向通用緩存,Java EE和輕量級容器。它具有內(nèi)存和磁盤存儲,緩存加載器,緩存擴(kuò)展,緩存異常處理程序,一個gzip緩存servlet過濾器,支持REST和SOAP api等特點。
優(yōu)點:
1、 快速
2、 簡單
3、 多種緩存策略
4、緩存數(shù)據(jù)有兩級:內(nèi)存和磁盤,因此無需擔(dān)心容量問題
5、 緩存數(shù)據(jù)會在虛擬機(jī)重啟的過程中寫入磁盤
6、可以通過RMI、可插入API等方式進(jìn)行分布式緩存
7、 具有緩存和緩存管理器的偵聽接口
8、支持多緩存管理器實例,以及一個實例的多個緩存區(qū)域
9、提供Hibernate的緩存實現(xiàn)
缺點:
1、使用磁盤Cache的時候非常占用磁盤空間:這是因為DiskCache的算法簡單,該算法簡單也導(dǎo)致Cache的效率非常高。它只是對元素直接追加存儲。因此搜索元素的時候非常的快。如果使用DiskCache的,在很頻繁的應(yīng)用中,很快磁盤會滿。
2、 不能保證數(shù)據(jù)的安全:當(dāng)突然kill掉java的時候,可能會產(chǎn)生沖突,EhCache的解決方法是如果文件沖突了,則重建cache。這對于Cache數(shù)據(jù)需要保存的時候可能不利。當(dāng)然,Cache只是簡單的加速,而不能保證數(shù)據(jù)的安全。如果想保證數(shù)據(jù)的存儲安全,可以使用Bekeley DB Java Edition版本。這是個嵌入式數(shù)據(jù)庫。可以確保存儲安全和空間的利用率。
九、Redis
redis是一個key-value存儲系統(tǒng)。和Memcached類似,它支持存儲的value類型相對更多,包括string(字符串)、list(鏈表)、set(集合)、zset(sorted set –有序集合)和hash(哈希類型)。這些數(shù)據(jù)類型都支持push/pop、add/remove及取交集并集和差集及更豐富的操作,而且這些操作都是原子性的。在此基礎(chǔ)上,redis支持各種不同方式的排序。與memcached一樣,為了保證效率,數(shù)據(jù)都是緩存在內(nèi)存中。區(qū)別的是redis會周期性的把更新的數(shù)據(jù)寫入磁盤或者把修改操作寫入追加的記錄文件,并且在此基礎(chǔ)上實現(xiàn)了master-slave(主從)同步。
Redis數(shù)據(jù)庫完全在內(nèi)存中,使用磁盤僅用于持久性。相比許多鍵值數(shù)據(jù)存儲,Redis擁有一套較為豐富的數(shù)據(jù)類型。Redis可以將數(shù)據(jù)復(fù)制到任意數(shù)量的從服務(wù)器。
1.2、Redis優(yōu)點:
(1)異??焖伲篟edis的速度非???,每秒能執(zhí)行約11萬集合,每秒約81000+條記錄。
(2)支持豐富的數(shù)據(jù)類型:Redis支持最大多數(shù)開發(fā)人員已經(jīng)知道像列表,集合,有序集合,散列數(shù)據(jù)類型。這使得它非常容易解決各種各樣的問題,因為我們知道哪些問題是可以處理通過它的數(shù)據(jù)類型更好。
(3)操作都是原子性:所有Redis操作是原子的,這保證了如果兩個客戶端同時訪問的Redis服務(wù)器將獲得更新后的值。
(4)多功能實用工具:Redis是一個多實用的工具,可以在多個用例如緩存,消息,隊列使用(Redis原生支持發(fā)布/訂閱),任何短暫的數(shù)據(jù),應(yīng)用程序,如Web應(yīng)用程序會話,網(wǎng)頁命中計數(shù)等。
1.3、Redis缺點:
(1)單線程
(2)耗內(nèi)存
十、Shiro
Apache Shiro是Java的一個安全框架,旨在簡化身份驗證和授權(quán)。Shiro在JavaSE和JavaEE項目中都可以使用。它主要用來處理身份認(rèn)證,授權(quán),企業(yè)會話管理和加密等。Shiro的具體功能點如下:
(1)身份認(rèn)證/登錄,驗證用戶是不是擁有相應(yīng)的身份;
(2)授權(quán),即權(quán)限驗證,驗證某個已認(rèn)證的用戶是否擁有某個權(quán)限;即判斷用戶是否能做事情,常見的如:驗證某個用戶是否擁有某個角色。或者細(xì)粒度的驗證某個用戶對某個資源是否具有某個權(quán)限;
(3)會話管理,即用戶登錄后就是一次會話,在沒有退出之前,它的所有信息都在會話中;會話可以是普通JavaSE環(huán)境的,也可以是如Web環(huán)境的;
(4)加密,保護(hù)數(shù)據(jù)的安全性,如密碼加密存儲到數(shù)據(jù)庫,而不是明文存儲;
(5)Web支持,可以非常容易的集成到Web環(huán)境;
Caching:緩存,比如用戶登錄后,其用戶信息、擁有的角色/權(quán)限不必每次去查,這樣可以提高效率;
(6)shiro支持多線程應(yīng)用的并發(fā)驗證,即如在一個線程中開啟另一個線程,能把權(quán)限自動傳播過去;
(7)提供測試支持;
(8)允許一個用戶假裝為另一個用戶(如果他們允許)的身份進(jìn)行訪問;
(9)記住我,這個是非常常見的功能,即一次登錄后,下次再來的話不用登錄了。
四、java的三大框架是什么,功能各是什么
常說的三大框架指:SSH,即:Spring、Struts、Hibernate。
Spring:功能強(qiáng)大的組件粘合濟(jì),能夠?qū)⒛愕乃械膉ava功能模塊用配置文件的方式組合起來成為一個完成的應(yīng)用。Spring是一個解決了許多在J2EE開發(fā)中常見的問題的強(qiáng)大框架。Spring提供了唯一的數(shù)據(jù)訪問抽象,包括簡單和有效率的JDBC框架,極大的改進(jìn)了效率并且減少了可能的錯誤。Spring的數(shù)據(jù)訪問架構(gòu)還集成了Hibernate和其他O/Rmapping解決方案。Spring還提供了唯一的事務(wù)管理抽象,它能夠在各種底層事務(wù)管理技術(shù)。
Struts:把Servlet、JSP、自定義標(biāo)簽和信息資源(messageresources)整合到一個統(tǒng)一的框架中,開發(fā)人員利用其進(jìn)行開發(fā)時不用再自己編碼實現(xiàn)全套MVC模式,極大的節(jié)省了時間,所以說它是大名鼎鼎的功能強(qiáng)大的MVC架構(gòu)。
Hibernate:強(qiáng)大的ORM工具,然后很方便將數(shù)據(jù)庫記錄轉(zhuǎn)化為java的實體實例,將java的實體實例很容易的保存到數(shù)據(jù)庫中,如果你不需要很復(fù)雜的數(shù)據(jù)庫訪問,利用它你根本就不用了解數(shù)據(jù)庫的細(xì)節(jié)。
拓展資料
Java是一種可以撰寫跨平臺應(yīng)用軟件的面向?qū)ο蟮某绦蛟O(shè)計語言。Java技術(shù)具有卓越的通用性、高效性、平臺移植性和安全性,廣泛應(yīng)用于PC、數(shù)據(jù)中心、游戲控制臺、科學(xué)超級計算機(jī)、移動電話和互聯(lián)網(wǎng),同時擁有全球最大的開發(fā)者專業(yè)社群。
Java由四方面組成:Java編程語言,即語法。Java文件格式,即各種文件夾、文件的后綴。Java虛擬機(jī)(JVM),即處理*.class文件的解釋器。Java應(yīng)用程序接口(JavaAPI)。
以上就是關(guān)于框架相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進(jìn)行咨詢,客服也會為您講解更多精彩的知識和內(nèi)容。
推薦閱讀:
商業(yè)模式設(shè)計框架(商業(yè)模式設(shè)計框架的九個關(guān)鍵要素)
浙江中考體育選考項目(浙江中考體育選考項目及分?jǐn)?shù))