大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學(xué)習(xí)攻略 職業(yè)指南 ssm框架面試題,常見知識點總結(jié)

ssm框架面試題,常見知識點總結(jié)

更新時間:2022-12-26 15:15:54 來源:動力節(jié)點 瀏覽1553次

很多同學(xué)說來都很疑惑,為什么很多的業(yè)內(nèi)面試官總喜歡問源碼?其實我們常用的一些框架、比如Spring、MyBaits都是比較經(jīng)典的教科書,我們可以從中學(xué)習(xí)到代碼與經(jīng)驗技巧,從而領(lǐng)悟框架的含義:

ssm框架面試題

1、什么是Spring-MVC框架

Spring 配備構(gòu)建Web 應(yīng)用的全功能MVC框架。Spring可以很便捷地和其他MVC框架集成,如Struts,Spring 的MVC框架用控制反轉(zhuǎn)把業(yè)務(wù)對象和控制邏輯清晰地隔離。它也允許以聲明的方式把請求參數(shù)和業(yè)務(wù)對象綁定。

Spring-MVC常用注解

@Controller注解

是在Spring的org.springframework.stereotype包下,org.springframework.stereotype.Controller注解類型用于指示Spring類的實例是一個控制器

使用@Controller注解的類不需要繼承特定的父類或者實現(xiàn)特定的接口,相對之前的版本實現(xiàn)Controller接口變的更加簡單。

而Controller接口的實現(xiàn)類只能處理一個單一的請求動作,而@Controller注解注解的控制器可以同時支持處理多個請求動作,使程序開發(fā)變的更加靈活。 @Controller用戶標記一個類,使用它標記的類就是一個Spring MVC Controller對象,即:一個控制器類。Spring使用掃描機制查找應(yīng)用程序中所有基于注解的控制器類,分發(fā)處理器會掃描使用了該注解的方法,并檢測該方法是否使用了@RequestMapping注解,而使用@RequestMapping注解的方法才是真正處理請求的處理器。為了保證Spring能找到控制器,我們需要完成兩件事.

@RequestParam注解

下面來說org.springframework.web.bind.annotation包下的第三個注解,即:@RequestParam注解,該注解類型用于將指定的請求參數(shù)賦值給方法中的形參。那么@RequestParam注解有什么屬性呢?它有4種屬性,下面將逐一介紹這四種屬性:

1、name屬性該屬性的類型是String類型,它可以指定請求頭綁定的名稱;

2、value屬性該屬性的類型是String類型,它可以設(shè)置是name屬性的別名;

3、required屬性該屬性的類型是boolean類型,它可以設(shè)置指定參數(shù)是否必須綁定;

4、defalutValue屬性該屬性的類型是String類型,它可以設(shè)置如果沒有傳遞參數(shù)可以使用默認值。

@PathVaribale注解

下面來說org.springframework.web.bind.annotation包下的第四個注解,即:@PathVaribale注解,該注解類型可以非常方便的獲得請求url中的動態(tài)參數(shù)。@PathVaribale注解只支持一個屬性value,類型String,表示綁定的名稱,如果省略則默認綁定同名參數(shù)。

Spring框架中的單例bean是線程安全的嗎

肯定不是線程安全的,當多用戶同時請求一個服務(wù)時,容器會給每一個請求分配一個線程,這是多個線程會并發(fā)執(zhí)行該請求多對應(yīng)的業(yè)務(wù)邏輯(成員方法),此時就要注意了,如果該處理邏輯中有對該單列狀態(tài)的修改(體現(xiàn)為該單列的成員屬性),則必須考慮線程同步問題.

Spring框架并沒有對單例bean進行任何多線程的封裝處理。關(guān)于單例bean的線程安全和并發(fā)問題需要開發(fā)者自行去搞定。但實際上,大部分的Spring bean并沒有可變的狀態(tài)(比如Serview類和DAO類),所以在某種程度上說Spring的單例bean是線程安全的。如果你的bean有多種狀態(tài)的話(比如 View Model對象),就需要自行保證線程安全。最淺顯的解決辦法就是將多態(tài)bean的作用域由“singleton”變更為“prototype”。

Spring如何處理線程并發(fā)問題

在一般情況下,只有無狀態(tài)的Bean才可以在多線程環(huán)境下共享,在Spring中,絕大部分Bean都可以聲明為singleton作用域,因為Spring對一些Bean中非線程安全狀態(tài)采用ThreadLocal進行處理,解決線程安全問題。

ThreadLocal和線程同步機制都是為了解決多線程中相同變量的訪問沖突問題。同步機制采用了“時間換空間”的方式,僅提供一份變量,不同的線程在訪問前需要獲取鎖,沒獲得鎖的線程則需要排隊。而ThreadLocal采用了“空間換時間”的方式。

ThreadLocal會為每一個線程提供一個獨立的變量副本,從而隔離了多個線程對數(shù)據(jù)的訪問沖突。因為每一個線程都擁有自己的變量副本,從而也就沒有必要對該變量進行同步了。ThreadLocal提供了線程安全的共享對象,在編寫多線程代碼時,可以把不安全的變量封裝進ThreadLocal。

什么是Spring的內(nèi)部bean

當一個bean僅被用作另一個bean的屬性時,它能被聲明為一個內(nèi)部bean,為了定義inner bean,在Spring 的 基于XML的 配置元數(shù)據(jù)中,可以在 或\ 元素內(nèi)使用 元素,內(nèi)部bean通常是匿名的,它們的Scope一般是prototype。

一般寫法

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
	http://www.springframework.org/schema/beans/spring-beans.xsd">
	
	<bean id="CustomerBean" class="com.dpb.common.Customer">
		<property name="person" ref="PersonBean"/>
	</bean>
	
	<bean id="PersonBean" class="com.domain.common.Person">
		<property name="name" value="阿三"/>
		<property name="address" value="陜西"/>
		<property name="age" value="18"/>
	</bean>
</beans>

改為內(nèi)部bean

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
	http://www.springframework.org/schema/beans/spring-beans.xsd">
	<bean id="CustomerBean" class="com.domain.common.Customer">
		<property name="person">
			<bean class="com.domain.common.Person">
				<property name="name" value="阿三"/>
				<property name="address" value="陜西"/>
				<property name="age" value="18"/>
			</bean>
		</property>
	</bean>
</beans>

內(nèi)部 bean 也支持構(gòu)造器注入

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
	http://www.springframework.org/schema/beans/spring-beans.xsd">
	<bean id="CustomerBean" class="com.dpb.common.Customer">
		<constructor-arg >
			<bean class="com.domain.common.Person">
				<property name="name" value="阿三"/>
				<property name="address" value="陜西"/>
				<property name="age" value="18"/>
			</bean>
		</constructor-arg>
	</bean>
</beans>

id 或 name 值在bean類是沒有必要以一個內(nèi)部 bean 呈現(xiàn)

以上就是“ssm框架面試題,常見知識點總結(jié)”,你能回答上來嗎?如果想要了解更多的Java面試題相關(guān)內(nèi)容,可以關(guān)注動力節(jié)點Java官網(wǎng)。

提交申請后,顧問老師會電話與您溝通安排學(xué)習(xí)

免費課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 欧美成人aa大片拍拍拍 | 亚洲综合在线观看视频 | 91破解版在线 | 亚洲 | 中文字幕视频在线观看 | 成人影院午夜久久影院 | 久草在线2 | www.色94色.com| 日产一一到六区麻豆 | 久久久鲁| 亚洲另类在线视频 | 成年女人视频网站免费m | 九九热精品免费观看 | 在线观看欧美视频 | 精品一本久久中文字幕 | 亚洲欧美综合在线观看 | 日本福利片 | 九九精品视频一区在线 | 99热国产这里只有精品99 | 日韩精品第三页 | 欧美日韩91 | 亚洲精品www久久久久久 | 欧美日韩精品一区三区 | 色酷综合 | 中文字幕视频一区二区 | 精品久久久久不卡无毒 | 一区二区三区在线播放 | 日韩免费成人 | 亚洲一区二区欧美日韩 | 波多野结衣精品中文字幕 | 久久亚洲精品中文字幕亚瑟 | 久草在线2 | 婷婷网五月天天综合天天爱 | 日本精品高清一区二区2021 | 欧美日韩精品一区二区在线线 | 中文字幕在线播放 | 这里只有精品国产 | 成人乱色短篇合集 | 成年女人视频免费观看一 | 欧美精品国产日韩综合在线 | 天天干夜夜爽天天操夜夜爽视频 | 国产真实乱子伦精品视 |