下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、關(guān)于spring的幾個(gè)集合對象介紹ListFactoryBeanorg.springframework.beans.factory.config.ListFactoryBeanListFactoryBean類為開發(fā)者提供了一種在Spring的bean配置文件中創(chuàng)建一個(gè)具體的列表集合類(ArrayList 和 LinkedList)。這里有一個(gè) ListFactoryBean示例,在運(yùn)行時(shí)它將實(shí)例化一個(gè)ArrayList ,并注入到一個(gè) bean屬性。yBean" >2. <property3. <list>4. <value>5. <valu
2、e>6. <value>7. <value>8. </list>9. </property>10. </bean>1. <bean id ="emails" class ="org.springframework.beans.factory.config.ListFactorname="sourceList" > </value> </value> stavrogingo
3、 </value> </value>配置<bean id="CustomerBean" class="mon.Customer"><property name="lists"><bean class="org.springframework.beans.factory.config.ListFactoryBean"><property name="targetListClass">&l
4、t;value>java.util.ArrayList</value></property><property name="sourceList"><list><value>one</value> <value>2</value><value>three</value></list></property></bean></property></bean>代碼public class App
5、public static void main(String口 args) Applicationcontext context = new ClassPathXmlApplicationContext( "applicationContext.xml");Customer cust = (Customer) context.getBean("CustomerBean");System.out.println(cust);結(jié)果Customer lists=one, 2, three Type=class java.util.ArrayListMapFac
6、toryBeanorg.springframework.beans.factory.config.MapFactoryBean1. <bean id ="emails" class ="org.springframework.beans.factory.config.MapFactory I Bean" >2. <propertyname="sourceMap" >3. <map>4. <entry key ="pechorin" value = "pechori
7、" />5. <entry key ="raskolnikov" value = "" />6. <entrykey ="stavrogin" value ="" />7. <entrykey ="porfiry" value ="" />8. </map>9. </property>
8、10. </bean>SetFactoryBeanorg.springframework.beans.factory.config.SetFactoryBean1. <bean id ="emails" class ="org.springframework.beans.factory.config.SetFactory Bean" >2. <property name="sourceSet" >3. <set>4. <value> </
9、value>5. <value> </value>6. <value> </value>7. <value> </value>8. </set>9. </property>10. </bean>PropertiesFactoryBean org.springframework.beans.factory.conRg.PropertiesFactoryBean通過Propertie
10、sFactoryBean來獲取properties配制文件數(shù)據(jù)1. <bean id ="jdbcConfiguration" class ="org.springframework.beans.factory.config .PropertiesFactoryBean" >2. <property name="location" value ="classpath:com/foo/perti es" />3. </bean>Property
11、PathFactoryBeanorg.springframework.beans.factory.config.PropertyPathFactoryBean 通過PropertyPathFactoryBean來指定屬性路徑獲取屬性值1. <bean id ="testBean" class ="org.springframework.beans.TestBean"singleton ="false" >2. <propertyname="age" value ="10" /&
12、gt;3. <propertyname="spouse" >4. <bean class ="org.springframework.beans.TestBean">5. <property name="age" value ="11" />6. </bean>7. </property>8. </bean>9. <bean id ="testBean.age" class ="org.springframe
13、work.beans.factory.config.Prop ertyPathFactoryBean" />框架介紹Spring是一個(gè)開源框架,Spring是于2003年興起的一個(gè)輕量級的Java開發(fā)框架,由Rod Johnson 在其著作 Expert One-On-One J2EE Development and Design 中闡述的部分理念 和原型衍生而來。它是為了解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性而創(chuàng)建的??蚣艿闹饕獌?yōu)勢之一就是其分層架構(gòu),分層架構(gòu)允許使用者選擇使用哪一個(gè)組件,同時(shí)為J2EE應(yīng)用程序開發(fā)提供集成的框架。Spring使用基本的JavaBean來完成以前只可能由 E
14、JB完成的事情。然而,Spring 的用途不僅限于服務(wù)器端的開發(fā)。從簡單性、可測試性和松耦合的角度而言,任何Java應(yīng)用都可以從Spring中受益。Spring的核心是控制反轉(zhuǎn)(IoC)和面向切面(AOP)。簡單來 說,Spring是一個(gè)分層的JavaSE/EEfull-stack( 一站式)輕量級開源框架??蚣芴卣鬏p量從大小與開銷兩方面而言Spring都是輕量的。完整的 Spring框架可以在一個(gè)大小只有 1MB多的JAR文件里發(fā)布。并且 Spring所需的處理開銷也是微不足道的。此外, Spring是 非侵入式的:典型地,Spring應(yīng)用中的對象不依賴于 Spring的特定類。AOP(面向
15、切面)面向切面Spring提供了面向切面編程的豐富支持,允許通過分離應(yīng)用的業(yè)務(wù)邏輯與系統(tǒng)級服務(wù)(例如審計(jì)(auditing)和事務(wù)(transaction)管理)進(jìn)行內(nèi)聚性的開發(fā)。應(yīng)用對象只 實(shí)現(xiàn)它們應(yīng)該做的一一完成業(yè)務(wù)邏輯一一僅此而已。它們并不負(fù)責(zé)(甚至是意識)其它的系 統(tǒng)級關(guān)注點(diǎn),例如日志或事務(wù)支持。IOC(控制反轉(zhuǎn))控制反轉(zhuǎn)Spring通過一種稱作控制反轉(zhuǎn)(IoC)的技術(shù)促進(jìn)了低耦合。當(dāng)應(yīng)用了 IoC ,一個(gè)對象依賴的其它對象會通過被動的方式傳遞進(jìn)來,而不是這個(gè)對象自己創(chuàng)建或者查找依賴對象。你可以認(rèn)為IoC與JNDI相反一一不是對象從容器中查找依賴,而是容器在對象初 始化時(shí)不等對象請求就
16、主動將依賴傳遞給它。一般都是調(diào)用者依賴被調(diào)用者,使用ioc后對象不會被直接調(diào)用,而是通過ioc容器來主動提供容器一一Spring包含并管理應(yīng)用對象的配置和生命周期,在這個(gè)意義上它是一種容器,你可以配置你的每個(gè)bean如何被創(chuàng)建基于一個(gè)可配置原型(prototype),你的bean可以創(chuàng)建一個(gè)單獨(dú)的實(shí)例或者每次需要時(shí)都生成一個(gè)新的實(shí)例一一以及它們是如何相互關(guān)聯(lián)的。然而,Spring不應(yīng)該被混同于傳統(tǒng)的重量級的EJB容器,它們經(jīng)常是龐大與笨重的,難以使用。框架一一Spring可以將簡單的組件配置、組合成為復(fù)雜的應(yīng)用。在 Spring中,應(yīng)用對象被聲明 式地組合,典型地是在一個(gè)XML文件里。Spri
17、ng也提供了很多基礎(chǔ)功能(事務(wù)管理、持久化框架集成等等),將應(yīng)用邏輯的開發(fā)留給了你。MVC一一Spring的作用是整合,但不僅僅限于整合,Spring框架可以被看做是一個(gè)企業(yè)解決方案級別的框架??蛻舳税l(fā)送請求,服務(wù)器控制器(由DispatcherServlet實(shí)現(xiàn)的)完成請求的轉(zhuǎn) 發(fā),控制器調(diào)用一個(gè)用于映射的類HandlerMapping ,該類用于將請求映射到對應(yīng)的處理器來處理請求。HandlerMapping將請求映射到對應(yīng)的處理器Controller (相當(dāng)于 Action )在Spring當(dāng)中如果寫一些處理器組件,一般實(shí)現(xiàn)Controller接口,在Controller中就可以調(diào)用一些
18、Service或DAO來進(jìn)行數(shù)據(jù)操作 ModelAndView 用于存放從DAO中取出的數(shù)據(jù),還 可以存放響應(yīng)視圖的一些數(shù)據(jù)。如果想將處理結(jié)果返回給用戶,那么在Spring框架中還提供一個(gè)視圖組件 ViewResoker,該組件根據(jù) Controller返回的標(biāo)示,找到對應(yīng)的視圖,將響 應(yīng)response返回給用戶Aop是面向?qū)ο箝_發(fā)的一種補(bǔ)充,可以在不改變原來的業(yè)務(wù)邏輯的基礎(chǔ)上動態(tài)的增加一 些功能,比如增加例子異常處理AOP面向切面編程。解耦是程序員編碼開發(fā)過程中一直追求的。AOP也是為了解耦所誕生。AOP在Spring框架中被作為核心組成部分之一,最常見的就是事務(wù)控制,日志記錄OOP (面
19、向?qū)ο缶幊蹋┽槍I(yè)務(wù)處理過程的實(shí)體及其屬性和行為進(jìn)行抽象封裝,以獲得更加清晰高效的邏輯單元?jiǎng)澐?。而AOP則是針對業(yè)務(wù)處理過程中的切面進(jìn)行提取,它所面對的是處理過程中的某個(gè)步驟或 階段,以獲得邏輯過程中各部分之間低耦合性的隔離效果。這兩種設(shè)計(jì)思想在目標(biāo)上有著本質(zhì)的差異。特點(diǎn)/優(yōu)點(diǎn)特點(diǎn)1 .方便解耦,簡化開發(fā)通過Spring提供的IoC容器,我們可以將對象之間的依賴關(guān)系交由Spring進(jìn)行控制,避免硬編碼所造成的過度程序耦合。有了 Spring ,用戶不必再為單 實(shí)例模式類、屬性文件解析等這些很底層的需求編寫代碼,可以更專注于上層的 應(yīng)用。2 .AOP編程的支持通過Spring提供的AOP功能,方
20、便進(jìn)行面向切面的編程,許多不容易用傳統(tǒng)OOP實(shí)現(xiàn)的功能可以通過AOP輕松應(yīng)付。3 .聲明式事務(wù)的支持在Spring中,我們可以從單調(diào)煩悶的事務(wù)管理代碼中解脫出來,通過聲明式方式靈活 地進(jìn)行事務(wù)的管理,提高開發(fā)效率和質(zhì)量。優(yōu)點(diǎn)1.低侵入式設(shè)計(jì),代碼污染極低2.獨(dú)立于各種應(yīng)用服務(wù)器,基于Spring框架的應(yīng)用,可以真正實(shí)現(xiàn) Write Once,Run Anywhere的承諾3.Spring的DI機(jī)制降低了業(yè)務(wù)對象替換的復(fù)雜性,提高了組件之間的解耦4.Spring的AOP支持允許將一些通用任務(wù)如安全、事務(wù)、日志等進(jìn)行集中式管理,從而提 供了更好的復(fù)用5.Spring的ORM和DAO提供了與第三方持
21、久層框架的良好整合,并簡化了底層的數(shù)據(jù)庫 訪問6.Spring并不強(qiáng)制應(yīng)用完全依賴于Spring ,開發(fā)者可自由選用 Spring框架的部分或全部實(shí)現(xiàn)不同類型的參數(shù)注入1 .注入直接量可以通過value標(biāo)簽進(jìn)行注入2 .引入其他bean組件使用標(biāo)簽ref屬性一般用bean3 .注入集合類型的屬性<list><set><map><properties> 具體配置詳見參數(shù)Bean的作用域Singletton默認(rèn)值:Spring以單例模式創(chuàng)建 bean的實(shí)例,即容器中該bean的實(shí)例只有一個(gè)Prototype:每次從容器中獲取 bean時(shí)都會創(chuàng)建一個(gè)實(shí)
22、例Request:用于web應(yīng)用環(huán)境,針對每次http請求都會創(chuàng)建一個(gè)實(shí)例Session:用于web環(huán)境,同一個(gè)會話共享一個(gè)實(shí)例 ,Bean注入的方式屬性注入構(gòu)造方法注入在Spring配置文件中實(shí)現(xiàn)自動裝配<bean>元素的autowire屬性提供了一種自動注入依賴對象的機(jī)制,配置bean時(shí)不需要做任何顯式地指定,Spring會自動查找符合條件的依賴對象并實(shí)施注入提供了四種自動裝配的類型No:默認(rèn)值,Spring默認(rèn)不進(jìn)行自動裝配,必須顯式指定依賴關(guān)系ByName :根據(jù)屬性名自動裝配,會查找與屬性名相同的id,Bytype根據(jù)屬性的類型主動裝配Constructor和bytype
23、類似,不過它針對構(gòu)造方法,如果Spring找到一個(gè)bean和構(gòu)造方法的參 數(shù)類型相匹配,則通過構(gòu)造方法注入該依賴對象,找不到拋出異常Spring常用注解注解說明?注冊注解處理器?方式一 :bean<bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/>?方式二:命名空間 <context:annotation-config /><context:annotationconfig /> 將 隱 式 地 向
24、 Spring 容 器 注 冊AutowiredAnnotationBeanPostProcessor、CommonAnnotationBeanPostProcessor 、 PersistenceAnnotationBeanPostProcessor 以 及 RequiredAnnotationBeanPostProcessor 這 4 個(gè) BeanPostProcessor。?方式三:命名空間 <context:component-scan />如果要使注解工作,則必須配置component-scan ,實(shí)際上不需要再配置annotation-config。base-packa
25、ge屬性指定了需要掃描的類包,類包及其遞歸子包中所有的類都會被處理。還允許定義過濾器將基包下的某些類納入或排除。啟用Spring MVC注解?啟動Spring MVC的注解功能,完成請求和注解POJO的映射.<beanclass="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/>注解介紹? Controller? Service? Autowired? RequestMapping? RequestParam? ModelAttribute? Reso
26、urce? Repository? Component (不推薦使用)? Scope? SessionAttributes? InitBinder? Required? Qualifier1.Controller?例如Controllerpublic class SoftCreateController extends SimpleBaseController ?或者Controller("softCreateController")?說明Controller負(fù)責(zé)注冊一個(gè) bean到spring上下文中,bean的ID默認(rèn)為類名稱開頭字 母小寫2.Service?例如Ser
27、vicepublic class SoftCreateServicelmpl implements ISoftCreateService ?或者Service("softCreateServiceImpl")?說明Service負(fù)責(zé)注冊一個(gè) bean到spring上下文中,bean的ID默認(rèn)為類名稱開頭字母 小寫3.Autowired?例如Autowired private ISoftPMService softPMService;?或者Autowired(required=false)private ISoftPMService softPMService = new S
28、oftPMServiceImpl();?說明Autowired根據(jù)bean類型從spring上線文中進(jìn)行查找,注冊類型必須唯一,否則報(bào)異常。與Resource的區(qū)別在于, Resource允許通過bean名稱或bean類型兩種方式進(jìn)行查 Autowired(required=false)表示,如果spring上下文中沒有找到該類型的bean時(shí),才會使用 new SoftPMServiceImpl();Autowired 標(biāo)注作用于 Map類型時(shí),如果 Map的key為String類型,則Spring會將 容器中所有類型符合Map的value對應(yīng)的類型的 Bean增加進(jìn)來,用 Bean的id或n
29、ame 作為 Map 的 key。Autowired還有一個(gè)作用就是,如果將其標(biāo)注在BeanFactory類型、ApplicationContext 類型、ResourceLoader 類型、ApplicationEventPublisher 類型、MessageSource 類型上,那么 Spring會自動注入這些實(shí)現(xiàn)類的實(shí)例,不需要額外的操作。4.RequestMapping?類ControllerRequestMapping("/bbtForum.do")public class BbtForumController RequestMapping(params = &
30、quot;method=listBoardTopic") public String listBoardTopic(int topicId,User user) RequestMapping("/softpg/downSoftPg.do")RequestMapping(value="/softpg/ajaxLoadSoftId.do",method = POST)RequestMapping(value = "/osu/product/detail.do", params = "modify=false"
31、 , method =POST)RequestMapping可以聲明到類或方法上如果我們使用以下的 URL請求:http:/localhost/bbtForum.do?method=listBoardTopic&topicId=1&userId=10&userName=t omtopicId URL參數(shù)將綁定到 topicId入?yún)⑸希?userId和userName URL參數(shù)將綁定到 user對 象的userId和userName屬性中。和URL請求中不允許沒有topicId參數(shù)不同,雖 然User的userId屬性的類型是基本數(shù)據(jù)類型,但如果URL中不存在user
32、Id參數(shù),Spring也不會報(bào)錯(cuò),此時(shí) user.userId值為0。如果User對象擁有一個(gè)dept.deptId的級聯(lián)屬性,那么 它將和dept.deptId URL參數(shù)綁定。5.RequestParam?參數(shù)綁定說明RequestParam("id")http:/localhost/bbtForum.do?method=listBoardTopic&id=1&userId=10&userName=tom listBoardTopic(RequestParam("id")int topicId,User user)中的 top
33、icId 綁定到 id 這個(gè) URL 參 數(shù),那么可以通過對入?yún)⑹褂肦equestParam注解來達(dá)到目的RequestParam(required=false):參數(shù)不是必須的,默認(rèn)為 trueRequestParam(value="id",required=false)請求處理方法入?yún)⒌目蛇x類型? Java基本數(shù)據(jù)類型和 String可以通默認(rèn)情況下將按名稱匹配的方式綁定到URL參數(shù)上 過RequestParam注解改變默認(rèn)的綁定規(guī)則? request/response/session既可以是Servlet API的也可以是Portlet API對應(yīng)的對象,Spring
34、會將它們綁定到 Servlet和Portlet容器的相應(yīng)對象上? org.springframework.web.context.request.WebRequest內(nèi)部包含了 request對象 ? java.util.Locale綁定到request對應(yīng)的Locale對象上? java.io.InputStream/java.io.Reader可以借此訪問request的內(nèi)容? java.io.OutputStream / java.io.Writer可以借此操作response的內(nèi)容?任何標(biāo)注了 RequestParam注解的人參被標(biāo)注RequestParam注解的入?yún)⒔壎ǖ教囟ǖ膔e
35、quest參數(shù)上。? java.util.Map / org.springframework.ui.ModelMap它綁定Spring MVC框架中每個(gè)請求所創(chuàng)建的潛在的模型對象,它們可以被 Web視圖對象訪問(如JSP)?命令/表單對象(注:一般稱綁定使用 HTTP GET發(fā)送的URL參數(shù)的對象為命令對象, 而稱綁定使用 HTTP POST發(fā)送的URL參數(shù)的對象為表單對象)它們的屬性將以名稱匹配的規(guī)則綁定到URL參數(shù)上,同時(shí)完成類型的轉(zhuǎn)換。而類型轉(zhuǎn)換的規(guī)則可以通過InitBinder注解或通過 HandlerAdapter的配置進(jìn)行調(diào)整? org.springframework.valida
36、tion.Errors / org.springframework.validation.BindingResult為屬性列表中的命令/表單對象的校驗(yàn)結(jié)果,注意檢驗(yàn)結(jié)果參數(shù)必須緊跟在命令/表單對象的后面? org.springframework.web.bind.support.SessionStatus可以通過該類型 status對象顯式結(jié)束表單的處理,這相當(dāng)于觸發(fā)session清除其中的通過SessionAttributes 定義的屬性請求處理方法返回值的可選類型? void此時(shí)邏輯視圖名由請求處理方法對應(yīng)的URL確定,如以下的方法:RequestMapping("/welcom
37、e.do")public void welcomeHandler() 對應(yīng)的邏輯視圖名為Welcome ”? String此時(shí)邏輯視圖名為返回的字符,如以下的方法:RequestMapping(method = RequestMethod.GET)public String setupForm(RequestParam("ownerId") int ownerld, ModelMap model) Owner owner = this.clinic.loadOwner(ownerld);model.addAttribute(owner);return "
38、ownerForm" 對應(yīng)的邏輯視圖名為ownerForm "? org.springframework.ui.ModelMap和返回類型為void 一樣,邏輯視圖名取決于對應(yīng)請求的URL ,如下面的例子:RequestMapping("/vets.do")public ModelMap vetsHandler() return new ModelMap(this.clinic.getVets();對應(yīng)的邏輯視圖名為vets ”,返回的 ModelMap將被作為請求對應(yīng)的模型對象,可以在JSP視圖頁面中訪問到。? ModelAndView當(dāng)然還可以是傳統(tǒng)
39、的ModelAndView 。ModelAttribute?作用域:request?例如RequestMapping("/base/userManageCooper/init.do")public String handleInit(ModelAttribute("queryBean") ManagedUser sUser,Model model,)?或者M(jìn)odelAttribute("coopMap") 將 coopMap 返回到頁 面public Map<Long,CooperatorInfo> coopMapItem
40、s()?說明ModelAttribute聲明在屬性上,表示該屬性的value來源于 model里"queryBean",并被保存到model 里ModelAttribute聲明在方法上,表示該方法的返回值被保存到model里Resource?例如Resourceprivate DataSource dataSource; / inject the bean named 'dataSource'?或者Resource(name="dataSource")Resource(type=DataSource.class)?說明Resource默認(rèn)
41、按bean的name進(jìn)行查找,如果沒有找到會按type進(jìn)行查找,此時(shí)與Autowired類似在沒有為 Resource注解顯式指定name屬性的前提下,如果將其標(biāo)注在BeanFactory類 型、Applicationcontext 類型、ResourceLoader 類型、ApplicationEventPublisher 類型、MessageSource類型上,那么Spring會自動注入這些實(shí)現(xiàn)類的實(shí)例,不需要額外的操作。此時(shí)name屬性不需要指定(或者指定為""),否則注入失??;©Repository?與Controller、©Service類似,
42、都是向 spring上下文中注冊 bean ,不在贅述。©Component (不推薦使用) ? ©Component©Component是所有受 Spring管理組件的通用形式,Spring還提供了更加細(xì)化的注解形式: ©Repository、©Service、©Controller ,它們分別對應(yīng)存儲層Bean ,業(yè)務(wù)層 Bean ,和展示層Bean。目前版本(2.5 )中,這些注解與 ©Component的語義是一樣的,完全通用,在Spring以后的版本中可能會給它們追加更多的語義。所以,我們推薦使用 ©Re
43、pository、©Service >©Controller 來替代 ©Component 。©Scope?例如©Scope("session") ©Repository。public class UserSessionBean implementsSerializable ?說明在使用XML定義Bean時(shí),可以通過bean的scope屬性來定義一個(gè) Bean的作用范圍, 同樣可以通過©Scope注解來完成©Scope中可以指定如下值:singleton:定義bean的范圍為每個(gè) spri
44、ng容器一個(gè)實(shí)例(默認(rèn)值)prototype:定義bean可以被多次實(shí)例化(使用一次就創(chuàng)建一次)request:定義bean的范圍是 http請求(springMVC中有效)session定義bean的范圍是 http會話(springMVC中有效) global-session:定義bean的范圍是全局 http會話(portlet中有效)©SessionAttributes?說明Spring允許我們有選擇地指定ModelMap中的哪些屬性需要轉(zhuǎn)存到session中,以便下一個(gè)請求屬對應(yīng)的ModelMap的屬性列表中還能訪問到這些屬性。這一功能是通過類定義處標(biāo)注©Sess
45、ionAttributes注解來實(shí)現(xiàn)的。©SessionAttributes只能聲明在類上,而不能聲明在方法上。?例如SessionAttributes("currUser") / 將 ModelMap 中屬性名為 currUser 的屬性SessionAttributes("atm","attr2")SessionAttributes(types = User.class)SessionAttributes(types = User.class,Dept.class)SessionAttributes(types = Us
46、er.class,Dept.class,value="attr1","attr2")InitBinder?說明如果希望某個(gè)屬性編輯器僅作用于特定的Controller ,可以在 Controller中定義一個(gè)標(biāo)注InitBinder注解的方法,可以在該方法中向Controller 了注冊若干個(gè)屬性編輯器?例如InitBinderpublic void initBinder(WebDataBinder binder) SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd&qu
47、ot;);dateFormat.setLenient(false);binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, false); Required?例如requiredpublic setName(String name)?說明 required負(fù)責(zé)檢查一個(gè)bean在初始化時(shí)其聲明的set方法是否被執(zhí)行,當(dāng)某個(gè)被標(biāo)注了 Required的Setter方法沒有被調(diào)用,則 Spring在解析的時(shí)候會拋出異常,以提 醒開發(fā)者對相應(yīng)屬性進(jìn)行設(shè)置。Required注解只能標(biāo)注在Setter方法之上。因?yàn)橐?/p>
48、賴注入的本質(zhì)是檢查Setter方法是否被調(diào)用了,而不是真的去檢查屬性是否賦值了以及賦了什么樣的值。如果將該注解標(biāo)注在非setXxxx()類型的方法則被忽略。©Qualifier?例如AutowiredQualifier("softService")private ISoftPMService softPMService;?說明bean,則會拋異常,此時(shí)可以使使用Autowired時(shí),如果找到多個(gè)同一類型的 用Qualifier("beanName"),明確指定 bean的名稱進(jìn)行注入,此時(shí)與 Resource指定name 屬性作用相同。SSH框
49、架整合知識點(diǎn)步驟1 .添加3個(gè)框架的jar文件,并創(chuàng)建相關(guān)的配置文件2 .為Hibernate配置數(shù)據(jù)源對象3 .配置 sessionfactory 對象4 .實(shí)現(xiàn)并配置Dao和service5 .使用Spring簡化數(shù)據(jù)庫事務(wù)處理,及配置聲明式事務(wù)管理6 .實(shí)現(xiàn)并配置Action2-5部操作屬于Spring整合hibernate, 步驟6屬于Spring整合Struts21 .在Spring容器中配置c3Po數(shù)據(jù)源目前流行的數(shù)據(jù)源框架有dbcp c3po,目前常用的是c3po需要導(dǎo)入的包c(diǎn)3po-.jar在web容器中配置數(shù)據(jù)源2 .配置 sessionfactory 對象An
50、notationsessionfactorybean 是 sessionfactory 的實(shí)現(xiàn)類,它同時(shí)支持 hibernate 中的 XML 和 annotation映射配置, mappingResources屬性用來指定XML映射文件,如果在開發(fā)中配置持久化類的配置問價(jià)非常多的時(shí)候,可以在mappingLocations屬性中使用通配符來匹配多個(gè)映射文件3實(shí)現(xiàn)并配置Dao和service實(shí)現(xiàn)Dao在眾多的dao中抽取公共的代碼形成basedao,dao集成basedao,由于baseda。接口的實(shí)現(xiàn)被不同的dao繼承,所以basedao被聲明形成了泛型接口 ,其中的類型T可以在繼承時(shí)再去確定,這 樣就可以讓baseda。實(shí)現(xiàn)多個(gè)表的持久化功能, 關(guān)鍵代碼Private Class<T>entityclass;Entityclass=(class<T>)(parameterizedType)getClass().getGenericSuperclass().getActualTypeAr guments()0/單basedaoimpl<T>被繼承
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)院保潔清潔方案(五篇)
- 2025年度住宅小區(qū)智能化改造與維護(hù)合同
- 電力市場趨勢分析與未來預(yù)測
- 2025年度國際貿(mào)易合同履行中的環(huán)境保護(hù)與社會責(zé)任
- 班級特色活動策劃流程詳解
- 2025年度美容美發(fā)行業(yè)美容院連鎖經(jīng)營咨詢合同
- 用戶體驗(yàn)設(shè)計(jì)在電子商務(wù)中的核心作用
- 特殊教育中的遠(yuǎn)程教學(xué)技術(shù)探討
- 2025年度海外勞務(wù)分包管理協(xié)議范本修訂版
- 2025年度人工智能企業(yè)關(guān)聯(lián)方技術(shù)服務(wù)合同
- 四川省自貢市2024-2025學(xué)年上學(xué)期八年級英語期末試題(含答案無聽力音頻及原文)
- 2025-2030年中國汽車防滑鏈行業(yè)競爭格局展望及投資策略分析報(bào)告新版
- 2025年上海用人單位勞動合同(4篇)
- 二年級上冊口算題3000道-打印版讓孩子口算無憂
- 新疆烏魯木齊地區(qū)2025年高三年級第一次質(zhì)量監(jiān)測生物學(xué)試卷(含答案)
- 衛(wèi)生服務(wù)個(gè)人基本信息表
- 高中英語北師大版必修第一冊全冊單詞表(按單元編排)
- 新教科版科學(xué)小學(xué)四年級下冊全冊教案
- 苗圃建設(shè)項(xiàng)目施工組織設(shè)計(jì)范本
- 廣東省湛江市廉江市2023-2024學(xué)年八年級上學(xué)期期末考試數(shù)學(xué)試卷(含答案)
- 2025年生物安全年度工作計(jì)劃
評論
0/150
提交評論