真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

springMVC和spring的概念有哪些

這篇“springMVC和spring的概念有哪些”文章的知識點大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“springMVC和spring的概念有哪些”文章吧。

創(chuàng)新互聯(lián)建站主營甘南網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都app軟件開發(fā),甘南h5小程序定制開發(fā)搭建,甘南網(wǎng)站營銷推廣歡迎甘南等地區(qū)企業(yè)咨詢

什么是springMVC

springMVC是一個基于MVC架構(gòu)的,用來簡化WEB應(yīng)用程序的框架;屬于表現(xiàn)層的框架。

springMVC的工作原理

用戶發(fā)送請求到前端控制器,前端控制器接受到請求調(diào)用處理器映射器,處理器映射器根據(jù)請求的URL找到具體的處理器,生成處理器對象及處理器攔截器(如果有則一并生成)返回給前端控制器,前端控制器通過處理器 適配器調(diào)用處理器,然后執(zhí)行控制器,執(zhí)行完成后返回視圖和模型,處理器適配器將控制器執(zhí)行結(jié)果視圖和模型返回給前端控制器;前端控制器將視圖和模型傳給視圖解析器,解析后返回具體視圖,前端控制器對視圖進行渲染視圖(即將模型數(shù)據(jù)填充到視圖中),前端控制器響應(yīng)給用戶。

springMVC的理解

springMVC的入口是一個servlet即前端控制器。
springMVC是基于方法開發(fā)(一個URL對于一個方法),請求參數(shù)傳遞到方法的形參,可以設(shè)計為單例模式或多例;建議用單例,默認是單例的。
為什么建議用單例?
	1、性能(不用每次請求都New對象)。
	2、不需要多例(不要在控制器中定義成員變量)。

什么是spring框架

	它是一個輕量級的開源的框架,創(chuàng)建性能好,易于測試,可重用代碼;它基于IOC(反向控制)和AOP(面向切面)的架構(gòu)多層Jzee(企業(yè)級應(yīng)用)系統(tǒng)的框架。
	優(yōu)點:
		1、能有效地組織中間層對象,不管是否使用了EJB(企業(yè)級JavaBean)。
		2、消除了在工作中對單例模式的過多使用,降低了系統(tǒng)的可測試性和面向?qū)ο蟆?
		3、消除各種自定義格式的屬性文件的需要,易于單元測試。
		4、把對接口編程而不是對類編程的代碼減少,養(yǎng)成好的編程習慣。
		5、使用它創(chuàng)建的應(yīng)用盡可能少的依賴于它的(APIS)編程接口。

spring的理解

它的兩大核心:IOC(控制反轉(zhuǎn))和AOP(面向切面)。
1、IOC:降低了程序的耦合度,使項目成為可插拔的組件式工程。
2、AOP:使開發(fā)過程精力得到釋放,更專注去解決客戶需求,可維護性高。
3、它提供的事務(wù)管理機制,采用聲明的方式來配置事務(wù),從而維護時無需改動源代碼,解決了程序硬編碼的問題。
4、它提供的DAO(數(shù)據(jù)存取對象)模板使持久層多了一種用途。
5、它可以整合當前任何一種框架,使在管理項目時更清晰明確。
spring管理事務(wù)有2種方式。
	1、編程式事務(wù),在代碼中硬編碼。
	2、聲明式事務(wù),在配置文件中配置;(推薦)
聲明式事務(wù)分為2種:
	1、基于XML的聲明式事務(wù)。
	2、基于注解的聲明式事務(wù)。

什么是依賴注入

依賴注入是實現(xiàn)控制反轉(zhuǎn)的一種思想(另一種是依賴查找)。
在開發(fā)的過程中,我們需要某個類的實例時,是由使用者為我們提供該類的實例,而不是自己去獲取。
實現(xiàn)依賴注入的兩種方式:
	1、使用構(gòu)造方法注入。
	2、set方法注入。

什么是控制反轉(zhuǎn)

IOC是spring的核心之一。
控制反轉(zhuǎn)是指,我們在獲取對象的時候,由之前的主動變成了被動接收;也就是說在編程某個類時,只需要提供一個接口類型的類成員,并不需要關(guān)系具體的實現(xiàn)類,而由使用者在使用時提供,降低了類與類之間的耦合度。

MyBatis

MyBatis是一個支持普通SQL查詢,存儲過程和高級映射的優(yōu)秀持久框架。
消除了幾乎所有的JDBC(Java數(shù)據(jù)庫連接)代碼和參數(shù)的手工設(shè)置以及對結(jié)果集的檢索封裝。可以使用簡單的XML或注解用于配置和原始映射,將接口和Java的POJO(普通的Java對象)映射成數(shù)據(jù)庫中的記錄。

MyBatis工作原理

springMVC和spring的概念有哪些

什么是springBoot

由pivotal團隊提供的全新框架,目的是用來簡化新spring應(yīng)用的初始化搭建以及開發(fā)過程。該框架使用了特定的方式來進行配置,從而使開發(fā)人員不需要定義樣板化的配置。
springBoot組件
	1、springBoot自動配置:spring啟動能夠檢測某些框架的可用性,一旦檢測到框架,它就自動配置它。
	2、springBoot Core:是其他spring模型基礎(chǔ),它提供了某些功能,可以通過驗證自行完成。
	3、springBoot starters:幫助啟動項目,它會自動添加啟動  項目和依賴項。
springBoot 特點
	1、用來實現(xiàn)微服務(wù)
	2、自動配置
	3、自定義配置
	4、模塊化
	5、獨立打包,直接運行
	6、內(nèi)嵌服務(wù)器(如:Tomcat服務(wù)器)
	7、spring Cloud的基礎(chǔ)

spring Security安全框架

spring Security是一個強大的和高度可制定的身份驗證和訪問控制框架。它是保證基于spring的應(yīng)用程序安全的實際標準。
主要功能:
	1、認證:驗證用戶名和密碼是否合法(是否系統(tǒng)中用戶)
	2、授權(quán):是系統(tǒng)用戶不代表你能使用某些功能,因為你沒有對于的權(quán)限
	3、防御會話固定,點擊劫持,跨站點請求偽造等攻擊
	4、servlet API集成
	5、與springWebMVC的可選集成

Java多線程、集合、樂/悲觀鎖

什么是多線程
	一個進程中可以開啟多條線程,每條線程可以并行(同時)執(zhí)行不同的任務(wù)。
	如:進程A車間,線程A車間的工人;
	多線程技術(shù)可以提高程序的執(zhí)行效率,多線程是屬于一種并發(fā)手段,是多任務(wù)的一種特別的形式,但多線程使用了更少的資源開銷。
三種創(chuàng)建線程的方法:
	1、實現(xiàn)Runnable接口
	2、繼承Thread類本身
	3、通過Callable和Fature創(chuàng)建線程
多線程的原理
	1、同一時間,CPU只能處理一條線程,只有一條線程在工作(執(zhí)行)
	2、多線程并發(fā)(同時)執(zhí)行,其實是CPU快速地在多條線程直接切換
	3、如果CPU調(diào)度線程的時間足夠快,就造成了多線程并發(fā)執(zhí)行的假象
如果線程非常多,會發(fā)生什么情況?
	1、CPU會在N多線程之間切換,CPU會累死,消耗大量的CPU資源
	2、線程的執(zhí)行效率降低
線程的生命周期
	1、新建狀態(tài)
	2、就緒狀態(tài)
	3、運行狀態(tài)
	4、阻塞狀態(tài):
			1、等待阻塞
			2、同步阻塞
			3、其他阻塞
	5、死亡狀態(tài)
線程的幾個主要概念:
	1、線程同步
	2、線程間通信
	3、線程死鎖
	4、線程控制:掛起,停止和恢復
樂觀鎖和悲觀鎖
	1、樂觀鎖持樂觀狀態(tài),就是假設(shè)我的數(shù)據(jù)不會被意外修改,如果修改了就放棄從頭再來。
	2、悲觀鎖持悲觀狀態(tài),就是假設(shè)我的數(shù)據(jù)一定會被修改,那干脆直接加鎖得了。

Java集合簡介
collection接口的三個子接口:
1、set
2、list
3、Queue
集合大致可分為以下四種體系:
1、set:無序,不可重復的集合
2、list:有序,可重復的集合
實現(xiàn)list接口常用的類有:LinkedList ArrayList Vector和Stack.
3、Map:則代表具有映射關(guān)系的集合
4、Queue:Java5中新增加了,代表一種隊列集合實現(xiàn)
集合與數(shù)組的區(qū)別
1、數(shù)組長度初始化指定,只能保存定長的數(shù)據(jù),集合可以保存數(shù)量不確定的數(shù)據(jù),還可以保存具有映射關(guān)系的數(shù)據(jù)。
2、數(shù)組元素即可以基本類型的值,也可以是對象,集合只能是對象,實際保存對象的引用變量,基本類型的變量要轉(zhuǎn)成對于的包裝類才能放入集合中。

map和collection是Java集合框架的根接口。map里的key是不可重復的,用于保存具有映射關(guān)系的數(shù)據(jù)。

redis

什么是緩存穿透
在正常情況下,查詢的數(shù)據(jù)都存在,如果請求一個不存在的數(shù)據(jù),也就是緩存和數(shù)據(jù)庫都查不到這個數(shù)據(jù),每次都會去數(shù)據(jù)庫查詢,機會造成數(shù)據(jù)庫壓力增大。
解決:
1、緩存空值,即就是將緩存中沒有的key設(shè)置為對應(yīng)只null。
2、布隆過濾器(BloomFilter),它類似于一個Hbase set用來判斷某個元素(key)是否存在于集合中。我們把數(shù)據(jù)的key放在布隆過濾器中,每次查詢都會進行判斷,如果沒有就直接返回null,它沒有刪除操作,可以結(jié)合緩存空值。
什么是緩存雪崩
當某一時刻發(fā)送大規(guī)模的緩存失效情況,比如緩存服務(wù)器宕機了。
解決:
1、利用集群,降低服務(wù)宕機的概率。
2、ehcache本地緩存+Hystrix限流和降級。
二級緩存本地考慮redis Cluster完全不可以的時候,可以支持一陣。
使用Hystrix進行限流或降級,如1秒5000請求,設(shè)置為2000請求,其余走邏輯流。
什么是緩存擊穿
在高并發(fā)的情況下,大量的請求同時查詢同一個key時,此時這個key正好失效了,就會導致同一時間這些請求都會去查詢數(shù)據(jù)庫,會造成某一時刻數(shù)據(jù)庫請求量過大。
解決方法:
1、采用分布式鎖
只有拿到鎖的第一個請求(線程)去請求數(shù)據(jù)庫,然后插入緩存,當然每次拿到鎖的時候都要去查詢一下緩存有沒有。

解決熱點數(shù)據(jù)集中失效問題

對于熱點數(shù)據(jù),當緩存失效以后會存在大量的請求過來,然后打到數(shù)據(jù)庫去,從而導致數(shù)據(jù)庫奔潰的情況。
解決方法:
	1、設(shè)置不通失效時間
	2、采用緩存擊穿辦法,加鎖
	3、設(shè)置緩存永不失效,就是采用定時任務(wù)對快要失效的緩存進行更新緩存和失效時間。

以上就是關(guān)于“springMVC和spring的概念有哪些”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對大家有幫助,若想了解更多相關(guān)的知識內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


當前標題:springMVC和spring的概念有哪些
標題路徑:http://weahome.cn/article/igppii.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部