2022年Spring知識(shí)點(diǎn)總結(jié)整理版_第1頁(yè)
2022年Spring知識(shí)點(diǎn)總結(jié)整理版_第2頁(yè)
2022年Spring知識(shí)點(diǎn)總結(jié)整理版_第3頁(yè)
2022年Spring知識(shí)點(diǎn)總結(jié)整理版_第4頁(yè)
2022年Spring知識(shí)點(diǎn)總結(jié)整理版_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

關(guān)于spring幾種集合對(duì)象簡(jiǎn)介L(zhǎng)istFactoryBeanorg.springframework.beans.factory.config.ListFactoryBeanListFactoryBean類為開(kāi)發(fā)者提供了一種在Springbean配備文獻(xiàn)中創(chuàng)立一種詳細(xì)列表集合類(ArrayList和LinkedList)。這里有一種ListFactoryBean示例,在運(yùn)營(yíng)時(shí)它將實(shí)例化一種ArrayList,并注入到一種bean屬性。<bean

id="emails"

class="org.springframework.beans.factory.config.ListFactoryBean">

<property

name="sourceList">

<list>

<value></value>

<value></value>

<value></value>

<value></value>

</list>

</property>

</bean>

配備<beanid="CustomerBean"class="mon.Customer"> <propertyname="lists"> <beanclass="org.springframework.beans.factory.config.ListFactoryBean"> <propertyname="targetListClass"> <value>java.util.ArrayList</value> </property> <propertyname="sourceList"> <list> <value>one</value> <value>2</value> <value>three</value> </list> </property> </bean> </property></bean>代碼publicclassApp{ publicstaticvoidmain(String[]args){ ApplicationContextcontext=newClassPathXmlApplicationContext( "applicationContext.xml"); Customercust=(Customer)context.getBean("CustomerBean"); System.out.println(cust); }}成果Customer[lists=[one,2,three]]Type=[classjava.util.ArrayList]MapFactoryBeanorg.springframework.beans.factory.config.MapFactoryBean<bean

id="emails"

class="org.springframework.beans.factory.config.MapFactoryBean">

<property

name="sourceMap">

<map>

<entry

key="pechorin"

value=""/>

<entry

key="raskolnikov"

value=""/>

<entry

key="stavrogin"

value=""/>

<entry

key="porfiry"

value=""/>

</map>

</property>

</bean>

SetFactoryBeanorg.springframework.beans.factory.config.SetFactoryBean<bean

id="emails"

class="org.springframework.beans.factory.config.SetFactoryBean">

<property

name="sourceSet">

<set>

<value></value>

<value></value>

<value></value>

<value></value>

</set>

</property>

</bean>

PropertiesFactoryBeanorg.springframework.beans.factory.config.PropertiesFactoryBean通過(guò)PropertiesFactoryBean來(lái)獲取properties配制文獻(xiàn)數(shù)據(jù)<bean

id="jdbcConfiguration"

class="org.springframework.beans.factory.config.PropertiesFactoryBean">

<property

name="location"

value="classpath:com/foo/perties"/>

</bean>PropertyPathFactoryBeanorg.springframework.beans.factory.config.PropertyPathFactoryBean通過(guò)PropertyPathFactoryBean來(lái)指定屬性途徑獲取屬性值<bean

id="testBean"

class="org.springframework.beans.TestBean"

singleton="false">

<property

name="age"

value="10"/>

<property

name="spouse">

<bean

class="org.springframework.beans.TestBean">

<property

name="age"

value="11"/>

</bean>

</property>

</bean>

<bean

id="testBean.age"

class="org.springframework.beans.factory.config.PropertyPathFactoryBean"/>

框架簡(jiǎn)介Spring是一種開(kāi)源框架,Spring是于年興起一種輕量級(jí)Java開(kāi)發(fā)框架,由RodJohnson在其著作ExpertOne-On-OneJ2EEDevelopmentandDesign中闡述某些理念和原型衍生而來(lái)。它是為理解決公司應(yīng)用開(kāi)發(fā)復(fù)雜性而創(chuàng)立。框架重要優(yōu)勢(shì)之一就是其分層架構(gòu),分層架構(gòu)容許使用者選取使用哪一種組件,同步為J2EE應(yīng)用程序開(kāi)發(fā)提供集成框架。Spring使用基本JavaBean來(lái)完畢此前只也許由EJB完畢事情。然而,Spring用途不但限于服務(wù)器端開(kāi)發(fā)。從簡(jiǎn)樸性、可測(cè)試性和松耦合角度而言,任何Java應(yīng)用都可以從Spring中受益。Spring核心是控制反轉(zhuǎn)(IoC)和面向切面(AOP)。簡(jiǎn)樸來(lái)說(shuō),Spring是一種分層JavaSE/EEfull-stack(一站式)輕量級(jí)開(kāi)源框架。框架特性輕量——從大小與開(kāi)銷兩方面而言Spring都是輕量。完整Spring框架可以在一種大小只有1MB多JAR文獻(xiàn)里發(fā)布。并且Spring所需解決開(kāi)銷也是微局限性道。此外,Spring是非侵入式:典型地,Spring應(yīng)用中對(duì)象不依賴于Spring特定類。AOP(面向切面)面向切面——Spring提供了面向切面編程豐富支持,容許通過(guò)度離應(yīng)用業(yè)務(wù)邏輯與系統(tǒng)級(jí)服務(wù)(例如審計(jì)(auditing)和事務(wù)(transaction)管理)進(jìn)行內(nèi)聚性開(kāi)發(fā)。應(yīng)用對(duì)象只實(shí)現(xiàn)它們應(yīng)當(dāng)做——完畢業(yè)務(wù)邏輯——僅此而已。它們并不負(fù)責(zé)(甚至是意識(shí))其他系統(tǒng)級(jí)關(guān)注點(diǎn),例如日記或事務(wù)支持。IOC(控制反轉(zhuǎn))控制反轉(zhuǎn)——Spring通過(guò)一種稱作控制反轉(zhuǎn)(IoC)技術(shù)增進(jìn)了低耦合。當(dāng)應(yīng)用了IoC,一種對(duì)象依賴其他對(duì)象會(huì)通過(guò)被動(dòng)方式傳遞進(jìn)來(lái),而不是這個(gè)對(duì)象自己創(chuàng)立或者查找依賴對(duì)象。你可以以為IoC與JNDI相反——不是對(duì)象從容器中查找依賴,而是容器在對(duì)象初始化時(shí)不等對(duì)象祈求就積極將依賴傳遞給它。普通都是調(diào)用者依賴被調(diào)用者,使用ioc后對(duì)象不會(huì)被直接調(diào)用,而是通過(guò)ioc容器來(lái)積極提供容器——Spring包括并管理應(yīng)用對(duì)象配備和生命周期,在這個(gè)意義上它是一種容器,你可以配備你每個(gè)bean如何被創(chuàng)立——基于一種可配備原型(prototype),你bean可以創(chuàng)立一種單獨(dú)實(shí)例或者每次需要時(shí)都生成一種新實(shí)例——以及它們是如何互有關(guān)聯(lián)。然而,Spring不應(yīng)當(dāng)被混同于老式重量級(jí)EJB容器,它們經(jīng)常是龐大與笨重,難以使用。框架——Spring可以將簡(jiǎn)樸組件配備、組合成為復(fù)雜應(yīng)用。在Spring中,應(yīng)用對(duì)象被聲明式地組合,典型地是在一種XML文獻(xiàn)里。Spring也提供了諸多基本功能(事務(wù)管理、持久化框架集成等等),將應(yīng)用邏輯開(kāi)發(fā)留給了你。MVC——Spring作用是整合,但不但僅限于整合,Spring框架可以被看做是一種公司解決方案級(jí)別框架??蛻舳税l(fā)送祈求,服務(wù)器控制器(由DispatcherServlet實(shí)現(xiàn))完畢祈求轉(zhuǎn)發(fā),控制器調(diào)用一種用于映射類HandlerMapping,該類用于將祈求映射到相應(yīng)解決器來(lái)解決祈求。HandlerMapping將祈求映射到相應(yīng)解決器Controller(相稱于Action)在Spring當(dāng)中如果寫(xiě)某些解決器組件,普通實(shí)現(xiàn)Controller接口,在Controller中就可以調(diào)用某些Service或DAO來(lái)進(jìn)行數(shù)據(jù)操作ModelAndView用于存儲(chǔ)從DAO中取出數(shù)據(jù),還可以存儲(chǔ)響應(yīng)視圖某些數(shù)據(jù)。如果想將解決成果返回給顧客,那么在Spring框架中還提供一種視圖組件ViewResolver,該組件依照Controller返回標(biāo)示,找到相應(yīng)視圖,將響應(yīng)response返回給顧客Aop是面向?qū)ο箝_(kāi)發(fā)一種補(bǔ)充,可以在不變化本來(lái)業(yè)務(wù)邏輯基本上動(dòng)態(tài)增長(zhǎng)某些功能,例如增長(zhǎng)例子異常解決AOP

面向切面編程。解耦是程序員編碼開(kāi)發(fā)過(guò)程中始終追求。AOP也是為理解耦所誕生。AOP在Spring框架中被作為核心構(gòu)成某些之一,最常用就是事務(wù)控制,日記記錄OOP(面向?qū)ο缶幊?針對(duì)業(yè)務(wù)解決過(guò)程實(shí)體及其屬性和行為進(jìn)行抽象封裝,以獲得更加清晰高效邏輯單元?jiǎng)澐?。而AOP則是針對(duì)業(yè)務(wù)解決過(guò)程中切面進(jìn)行提取,它所面對(duì)是解決過(guò)程中某個(gè)環(huán)節(jié)或階段,以獲得邏輯過(guò)程中各某些之間低耦合性隔離效果。這兩種設(shè)計(jì)思想在目的上有著本質(zhì)差別。特點(diǎn)/長(zhǎng)處特點(diǎn)1.以便解耦,簡(jiǎn)化開(kāi)發(fā)通過(guò)Spring提供IoC容器,我們可以將對(duì)象之間依賴關(guān)系交由Spring進(jìn)行控制,避免硬編碼所導(dǎo)致過(guò)度程序耦合。有了Spring,顧客不必再為單實(shí)例模式類、屬性文獻(xiàn)解析等這些很底層需求編寫(xiě)代碼,可以更專注于上層應(yīng)用。2.AOP編程支持通過(guò)Spring提供AOP功能,以便進(jìn)行面向切面編程,許多不容易用老式OOP實(shí)現(xiàn)功能可以通過(guò)AOP輕松應(yīng)付。3.聲明式事務(wù)支持在Spring中,我們可以從單調(diào)煩悶事務(wù)管理代碼中解脫出來(lái),通過(guò)聲明式方式靈活地進(jìn)行事務(wù)管理,提高開(kāi)發(fā)效率和質(zhì)量。長(zhǎng)處1.低侵入式設(shè)計(jì),代碼污染極低2.獨(dú)立于各種應(yīng)用服務(wù)器,基于Spring框架應(yīng)用,可以真正實(shí)現(xiàn)WriteOnce,RunAnywhere承諾3.SpringDI機(jī)制減少了業(yè)務(wù)對(duì)象替代復(fù)雜性,提高了組件之間解耦4.SpringAOP支持容許將某些通用任務(wù)如安全、事務(wù)、日記等進(jìn)行集中式管理,從而提供了更好復(fù)用5.SpringORM和DAO提供了與第三方持久層框架良好整合,并簡(jiǎn)化了底層數(shù)據(jù)庫(kù)訪問(wèn)6.Spring并不強(qiáng)制應(yīng)用完全依賴于Spring,開(kāi)發(fā)者可自由選用Spring框架某些或所有實(shí)現(xiàn)不同類型參數(shù)注入1.注入直接量可以通過(guò)<value>標(biāo)簽進(jìn)行注入2.引入其她bean組件使用標(biāo)簽<ref>屬性普通用bean3.注入集合類型屬性<list><set><map><properties>詳細(xì)配備詳見(jiàn)參數(shù)Bean作用域Singletton默認(rèn)值:Spring以單例模式創(chuàng)立bean實(shí)例,即容器中該bean實(shí)例只有一種Prototype:每次從容器中獲取bean時(shí)都會(huì)創(chuàng)立一種實(shí)例Request:用于web應(yīng)用環(huán)境,針對(duì)每次http祈求都會(huì)創(chuàng)立一種實(shí)例Session:用于web環(huán)境,同一種會(huì)話共享一種實(shí)例,Bean注入方式屬性注入構(gòu)造辦法注入在Spring配備文獻(xiàn)中實(shí)現(xiàn)自動(dòng)裝配<bean>元素autowire屬性提供了一種自動(dòng)注入依賴對(duì)象機(jī)制,配備bean時(shí)不需要做任何顯式地指定,Spring會(huì)自動(dòng)查找符合條件依賴對(duì)象并實(shí)行注入提供了四種自動(dòng)裝配類型No:默認(rèn)值,Spring默認(rèn)不進(jìn)行自動(dòng)裝配,必要顯式指定依賴關(guān)系ByName:依照屬性名自動(dòng)裝配,會(huì)查找與屬性名相似id,Bytype依照屬性類型積極裝配Constructor和bytype類似,但是它針對(duì)構(gòu)造辦法,如果Spring找到一種bean和構(gòu)造辦法參數(shù)類型相匹配,則通過(guò)構(gòu)造辦法注入該依賴對(duì)象,找不到拋出異常Spring慣用注解

注解闡明?

注冊(cè)注解解決器?

方式一:bean<beanclass="org.springframework.beans.factory.annotation.

AutowiredAnnotationBeanPostProcessor"/>?

方式二:

命名空間<context:annotation-config/><context:annotationconfig/>

將隱式地向Spring

容器注冊(cè)AutowiredAnnotationBeanPostProcessor、CommonAnnotationBeanPostProcessor

、

PersistenceAnnotationBeanPostProcessor

以及RequiredAnnotationBeanPostProcessor

這4

個(gè)BeanPostProcessor

。?

方式三:

命名空間<context:component-scan/>如果要使注解工作,則必要配備component-scan

,事實(shí)上不需要再配備annotation-config。base-package

屬性指定了需要掃描類包,類包及其遞歸子包中所有類都會(huì)被解決。還容許定義過(guò)濾器將基包下某些類納入或排除。

啟用SpringMVC

注解?

啟動(dòng)SpringMVC

注解功能,完畢祈求和注解POJO

映射.<beanclass="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/>

注解簡(jiǎn)介

?

@Controller

?

@Service

?

@Autowired

?

@RequestMapping

?

@RequestParam

?

@ModelAttribute

?

@Resource

?

@Repository

?

@Component

(不推薦使用)

?

@Scope

?

@SessionAttributes

?

@InitBinder

?

@Required

?

@Qualifier

1.@Controller

?

例如

@Controller

publicclassSoftCreateControllerextendsSimpleBaseController{}

?

或者

@Controller("softCreateController")

?

闡明

@Controller

負(fù)責(zé)注冊(cè)一種bean

到spring

上下文中,bean

ID

默以為類名稱開(kāi)頭字母小寫(xiě)

2.@Service

?

例如

@Service

publicclassSoftCreateServiceImplimplementsISoftCreateService{}

?

或者

@Service("softCreateServiceImpl")

?

闡明

@Service

負(fù)責(zé)注冊(cè)一種bean

到spring

上下文中,bean

ID

默以為類名稱開(kāi)頭字母小寫(xiě)

3.@Autowired

?

例如

@Autowired

privateISoftPMServicesoftPMService;

?

或者

@Autowired(required=false)

privateISoftPMServicesoftPMService=newSoftPMServiceImpl();

?

闡明

@Autowired

依照bean

類型從spring

上線文中進(jìn)行查找,注冊(cè)類型必要唯一,否則報(bào)異常。與@Resource

區(qū)別在于,@Resource

容許通過(guò)bean

名稱或bean

類型兩種方式進(jìn)行查找@Autowired(required=false)

表達(dá),如果spring

上下文中沒(méi)有找到該類型bean

時(shí),才會(huì)使用newSoftPMServiceImpl();@Autowired標(biāo)注作用于Map類型時(shí),如果Mapkey為String類型,則Spring會(huì)將容器中所有類型符合Mapvalue相應(yīng)類型Bean增長(zhǎng)進(jìn)來(lái),用Beanid或name作為Mapkey。@Autowired尚有一種作用就是,如果將其標(biāo)注在BeanFactory類型、ApplicationContext類型、ResourceLoader類型、ApplicationEventPublisher類型、MessageSource類型上,那么Spring會(huì)自動(dòng)注入這些實(shí)現(xiàn)類實(shí)例,不需要額外操作。

4.@RequestMapping?

類@Controller

@RequestMapping("/bbtForum.do")publicclassBbtForumController{

@RequestMapping(params="method=listBoardTopic")publicStringlistBoardTopic(inttopicId,Useruser){}

}

?

辦法

@RequestMapping("/softpg/downSoftPg.do")

@RequestMapping(value="/softpg/ajaxLoadSoftId.do",method=POST)

@RequestMapping(value="/osu/product/detail.do",params={"modify=false"},method=POST)

?

闡明

@RequestMapping

可以聲明到類或辦法上

?

參數(shù)綁定闡明

如果我們使用如下

URL

祈求:http://localhost/bbtForum.do?method=listBoardTopic&topicId=1&userId=10&userName=tomtopicIdURL

參數(shù)將綁定到

topicId

入?yún)⑸?而

userId

userNameURL

參數(shù)將綁定到

user

對(duì)象

userId

userName

屬性中。和

URL

祈求中不容許沒(méi)有

topicId

參數(shù)不同,雖然

User

userId

屬性類型是基本數(shù)據(jù)類型,但如果

URL

中不存在

userId

參數(shù),Spring

也不會(huì)報(bào)錯(cuò),此時(shí)

user.userId

值為

0

。如果

User

對(duì)象擁有一種

dept.deptId

級(jí)聯(lián)屬性,那么它將和

dept.deptIdURL

參數(shù)綁定。

5.@RequestParam?

參數(shù)綁定闡明

@RequestParam("id")http://localhost/bbtForum.do?method=listBoardTopic&id=1&userId=10&userName=tomlistBoardTopic(@RequestParam("id")inttopicId,Useruser)

topicId

綁定到

id

這個(gè)

URL

參數(shù),那么可以通過(guò)對(duì)入?yún)⑹褂?/p>

@RequestParam

注解來(lái)達(dá)到目

@RequestParam(required=false):參數(shù)不是必要,默以為true@RequestParam(value="id",required=false)

祈求解決辦法入?yún)⒖蛇x類型

?

Java

基本數(shù)據(jù)類型和

String

默認(rèn)狀況下將按名稱匹配方式綁定到

URL

參數(shù)上,可以通過(guò)

@RequestParam

注解變化默認(rèn)綁定規(guī)則

?

request/response/session

既可以是

ServletAPI

也可以是

PortletAPI

相應(yīng)對(duì)象,Spring

會(huì)將它們綁定到Servlet

Portlet

容器相應(yīng)對(duì)象上

?

org.springframework.web.context.request.WebRequest

內(nèi)部包括了

request

對(duì)象

?

java.util.Locale綁定到

request

相應(yīng)

Locale

對(duì)象上

?

java.io.InputStream/java.io.Reader

可以借此訪問(wèn)

request

內(nèi)容

?

java.io.OutputStream/java.io.Writer可以借此操作

response

內(nèi)容

?

任何標(biāo)注了

@RequestParam

注解入?yún)?/p>

被標(biāo)注

@RequestParam

注解入?yún)⒔壎ǖ教囟?/p>

request

參數(shù)上。

?

java.util.Map/org.springframework.ui.ModelMap它綁定

SpringMVC

框架中每個(gè)祈求所創(chuàng)立潛在模型對(duì)象,它們可以被

Web

視圖對(duì)象訪問(wèn)(如

JSP

)

?

命令/

表單對(duì)象(注:普通稱綁定使用

HTTPGET

發(fā)送

URL

參數(shù)對(duì)象為命令對(duì)象,而稱綁定使用HTTPPOST

發(fā)送

URL

參數(shù)對(duì)象為表單對(duì)象)

它們屬性將以名稱匹配規(guī)則綁定到

URL

參數(shù)上,同步完畢類型轉(zhuǎn)換。

而類型轉(zhuǎn)換規(guī)則可以通過(guò)

@InitBinder

注解或通過(guò)

HandlerAdapter

配備進(jìn)行調(diào)

?

org.springframework.validation.Errors/org.springframework.validation.BindingResult

為屬性列表中命令/

表單對(duì)象校驗(yàn)成果,注意檢查成果參數(shù)必要緊跟在命令/

表單對(duì)象背面

?

org.springframework.web.bind.support.SessionStatus

可以通過(guò)該類型

status

對(duì)象顯式結(jié)束表單解決,這相稱于觸發(fā)

session

清除其中通過(guò)@SessionAttributes

定義屬性

祈求解決辦法返回值可選類型?

void此時(shí)邏輯視圖名由祈求解決辦法相應(yīng)

URL

擬定,如如下辦法:

@RequestMapping("/welcome.do")

publicvoidwelcomeHandler(){}

相應(yīng)邏輯視圖名為

welcome

?

String此時(shí)邏輯視圖名為返回字符,如如下辦法:

@RequestMapping(method=RequestMethod.GET)

publicStringsetupForm(@RequestParam("ownerId")intownerId,ModelMapmodel){Ownerowner=this.clinic.loadOwner(ownerId);

model.addAttribute(owner);

return"ownerForm";}

相應(yīng)邏輯視圖名為

ownerForm

?

org.springframework.ui.ModelMap和返回類型為

void

同樣,邏輯視圖名取決于相應(yīng)祈求

URL

,如下面例子:

@RequestMapping("/vets.do")

publicModelMapvetsHandler(){returnnewModelMap(this.clinic.getVets());}相應(yīng)邏輯視圖名為

vets

,返回

ModelMap

將被作為祈求相應(yīng)模型對(duì)象,可以在

JSP

視圖頁(yè)面中訪問(wèn)到。

?

ModelAndView

固然還可以是老式

ModelAndView

。

@ModelAttribute

?

作用域:request

?

例如

@RequestMapping("/base/userManageCooper/init.do")

publicStringhandleInit(@ModelAttribute("queryBean")ManagedUsersUser,Modelmodel,){

?

或者

@ModelAttribute("coopMap")//

將coopMap

返回到頁(yè)

publicMap<Long,CooperatorInfo>coopMapItems(){}

?

闡明

@ModelAttribute

聲明在屬性上,表達(dá)該屬性value

來(lái)源于model

里"queryBean"

,并被保存到model

里@ModelAttribute聲明在辦法上,表達(dá)該辦法返回值被保存到model

@Resource

?

例如

@Resource

privateDataSourcedataSource;//injectthebeannamed'dataSource'

?

或者

@Resource(name="dataSource")

@Resource(type=DataSource.class)

?

闡明@Resource

默認(rèn)按bean

name

進(jìn)行查找,如果沒(méi)有找到會(huì)按type

進(jìn)行查找,

此時(shí)與@Autowired

似在沒(méi)有為@Resource注解顯式指定name屬性前提下,如果將其標(biāo)注在BeanFactory類型、ApplicationContext類型、ResourceLoader類型、ApplicationEventPublisher類型、MessageSource類型上,那么Spring會(huì)自動(dòng)注入這些實(shí)現(xiàn)類實(shí)例,不需要額外操作。此時(shí)name屬性不需要指定(或者指定為""),否則注入失敗;

@Repository?

與@Controller

、@Service

類似,都是向spring

上下文中注冊(cè)bean

,不在贅述。

@Component

(不推薦使用)?

@Component@Component

是所有受Spring

管理組件通用形式,Spring

還提供了更加細(xì)化注解形式:

@Repository

、@Service、@Controller

,它們分別相應(yīng)存儲(chǔ)層Bean

,業(yè)務(wù)層Bean

,和展示層Bean

。當(dāng)前版本(2.5

)中,這些注解與@Component

語(yǔ)義是同樣,完全通用,

在Spring

后來(lái)版本中也許會(huì)給它們追加更多語(yǔ)義。

因此,我們推薦使用@Repository

、@Service

、@Controller

來(lái)代替@Component

。

@Scope

?

例如

@Scope("session")

@Repository()

publicclassUserSessionBeanimplementsSerializable{}

?

闡明

在使用XML

定義Bean

時(shí),可以通過(guò)bean

scope

屬性來(lái)定義一種Bean

作用范疇,

同樣可以通過(guò)@Scope

注解來(lái)完畢

@Scope中可以指定如下值:

singleton:定義bean范疇為每個(gè)spring容器一種實(shí)例(默認(rèn)值)

prototype:定義bean可以被多次實(shí)例化(使用一次就創(chuàng)立一次)

request:定義bean范疇是http祈求(springMVC中有效)

session:定義bean范疇是http會(huì)話(springMVC中有效)

global-session:定義bean范疇是全局http會(huì)話(portlet中有效)

@SessionAttributes?

闡明Spring

容許我們有選取地指定

ModelMap

中哪些屬性需要轉(zhuǎn)存到

session

中,

以便下一種祈求屬相應(yīng)

ModelMap

屬性列表中還能訪問(wèn)到這些屬性。

這一功能是通過(guò)類定義處標(biāo)注

@SessionAttributes

注解來(lái)實(shí)現(xiàn)。

@SessionAttributes

只能聲明在類上,而不能聲明在辦法上。

?

例如@SessionAttributes("currUser")//

將ModelMap

中屬性名為currUser

屬性

@SessionAttributes({"attr1","attr2"})

@SessionAttributes(types=User.class)

@SessionAttributes(types={User.class,Dept.class})

@SessionAttributes(types={User.class,Dept.class},value={"attr1","attr2"})@InitBinder?

闡明如果但愿某個(gè)屬性編輯器僅作用于特定

Controller

,

可以在

Controller

中定義一種標(biāo)注

@InitBinder

注解辦法,

可以在該辦法中向

Controller

了注冊(cè)若干個(gè)屬性編輯器

?

例如@InitBinder

publicvoidinitBinder(WebDataBinderbinder){SimpleDateFormatdateFormat=newSimpleDateFormat("yyyy-MM-dd");

dateFormat.setLenient(false);

binder.registerCustomEditor(Date.class,newCustomDateEditor(dateFormat,false));}

@Required

?

例如

@required

public

setName(Stringname){}

?

闡明

@

required

負(fù)責(zé)檢查一種bean在初始化時(shí)其聲明

set辦法與否被執(zhí)行,

當(dāng)某個(gè)被標(biāo)注了@RequiredSetter辦法沒(méi)有被調(diào)用,則Spring在解析時(shí)候會(huì)拋出異常,以提示開(kāi)發(fā)者對(duì)相應(yīng)屬性進(jìn)行設(shè)立。@Required注解只能標(biāo)注在Setter辦法之上。由于依賴注入本質(zhì)是檢查Setter辦法與否被調(diào)用了,而不是真去檢查屬性與否賦值了以及賦了什么樣值。如果將該注解標(biāo)注在非setXxxx()類型辦法則被忽視。

@Qualifier

?

例如

@Autowired

@Qualifier("softService")

privateISoftPMServicesoftPMService;

?

闡明

使用@Autowired

時(shí),如果找到各種同一類型bean,則會(huì)拋異常,此時(shí)可以使用

@Qualifier("beanName"),明確指定bean名稱進(jìn)行注入,此時(shí)與

@Resource指定name屬性作用相似。SSH框架整合知識(shí)點(diǎn)環(huán)節(jié)添加3個(gè)框架jar文獻(xiàn),并創(chuàng)立有關(guān)配備文獻(xiàn)為Hibernate配備數(shù)據(jù)源對(duì)象配備sessionfactory對(duì)象實(shí)現(xiàn)并配備Dao和service使用Spring簡(jiǎn)化數(shù)據(jù)庫(kù)事務(wù)解決,及配備聲明式事務(wù)管理實(shí)現(xiàn)并配備Action2-5部操作屬于Spring整合hibernate,環(huán)節(jié)6屬于Spring整合Struts21.在Spring容器中配備c3po數(shù)據(jù)源當(dāng)前流行數(shù)據(jù)源框架有dbcpc3po,當(dāng)前慣用是c3po需要導(dǎo)入包c(diǎn)3po-.jar在web容器中配備數(shù)據(jù)源2.配備sessionfactory對(duì)象Annotationsessionfactorybean是sessionfactory實(shí)現(xiàn)類,它同步支持hibernate中XML和annotation映射配備,mappingResources屬性用來(lái)指定XML映射文獻(xiàn),如果在開(kāi)發(fā)中配備\\持久化類配備問(wèn)價(jià)非常多時(shí)候,可以在mappingLocations屬性中使用通配符來(lái)匹配各種映射文獻(xiàn)3實(shí)現(xiàn)并配備Dao和service實(shí)現(xiàn)Dao在眾多dao中抽取公共代碼形成basedao,dao集成basedao,由于basedao接口實(shí)現(xiàn)被不同dao繼承,因此basedao被聲明形成了泛型接口,其中類型T可以在繼承時(shí)再去擬定,這樣就可以讓basedao實(shí)現(xiàn)各種表持久化功能,核心代碼PrivateClass<T>enti

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論