




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
Spring的優點有什么SpringSpringPOJO,POJOIoCJDBCSpringSpring*描述一下spring實DI(dependencyinjection)的幾種方方式二:Type2IoC:Setterinjectionset方式三:Type3IoC:ConstructorinjectionSpringIOC(inversionofcontrol)的理一個類需要用到某個接口的方法,我們需要將類A和接口BA一個對于接口B的實現C(Dependency)IoC在類ABA,接口BBCIoC(Container)中,通過一定的配置由容器(Container)A與接口BCSpring對很ORM架提供了很好支持springhibernatecontextDataSource,創建SessionFactoy,設置參數;DAO類繼承OpenSessionInViewOpenSessionInViewFilter或spring的事務管springTransactionDefinitionTranscationStatusPlatformTransactionManagerspringTransactionDefinitiontd=newTransactionDefinition();TransactionStatusts=transactionManager.getTransaction(td);{//do }catch(Exceptionspring提供的事務管理可以分為兩類:編程式的和式的。編程式的,比較靈活,但是代碼量大,存在重復的代碼比較多;式的比編程式的更靈活。void{transactionTemplate.execute(newTransactionCallback(){pulicObjectnTransaction(TransactionStatusts){//do}}PROPAGATION_REQUIREDPROPAGATION_REQUIRED圍繞Poxy的動態能夠自動的提交和回滾事PROPAGATION_REQUIREDspringapplicationContext.xmlJNDI可以使用”org.springframework.jndi.JndiObjectFactoryBean”<bean<property 在spring中是如何配置數據庫驅動<bean<property<property<property<propertyspring中的applicationContext.xml能不能改為其他ContextLoaderListenerServletContextListener,webWEB-INF/applicationContext.xmlSpring<context-param>元素名字為”contextConfigLocation”Spring<listener-<context-<param-name>contextConfigLocation</param-<param-value>/WEB-INF/xyz.xml</param-</context-</listener-webJ2EEwebspringspringContextLoaderListenerweb.xml??*springhibernate添加hibernatemap文件到web/WEB- 下的applicationContext.xml文件里面。示例如下<propertyname=”map兩種依賴注入的類型是什settersetterjavabean,settergetterpublicclassnamebean publicvoidsetName(Stringa){name=a;}publicStringgetName(){returnname;}}bean,spring<bean name=”name”SpringsetNamename構造方法注入:構造方法注入中,我們使用帶參數的構造方法如下publicclassnamebeanStringpublicnamebean(Stringa){name=a;}}beannewnamebean(”tom”)nameSpring<beanid=”bean1″<constructor-<value>MyBean</constructor-使用constructor-arg來設置構造方法的參數DependencyInjection(DIIOC(inversionof依賴注入是一個IOC把一個數據庫連接已參數的形式傳到一個對象的結構方法里面而不是在那個對象自行創建接??刂品崔D和依賴注入的基本思想就是把類的依賴從類轉化到外部以減少依賴應用控制反轉對象在被創建的時候由一個調控系統內所有對象的外界實體將其所依賴的對象的,傳遞給它。也可以說,依賴被注入到對象中。所以,控制反轉是,關于一個對象如何獲取他所依賴的對象的,這個責任的反轉*SpringBeanFactoryApplicationContext的作用和區別BeanFactory負責bean配置文檔,管理bean的加載,實例化,bean之間的依賴關系,負bean的周期ApplicationContextBeanFactory資源:Resourcers=ctx.getResource(”classpath:perties”),ApplicationContextAwareApplicationContextClassPathXmlApplicationContext:從classpath的xml配置文件創建,可以從jar包中配置文WebApplicationContextUtils:從web應用的根 器或者servlet來實現<listener-class>org.springframework.web.context.ContextLoaderListener</listener-<servlet-name>context</servlet-<servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-<load-on-startup>1</load-on-<context-<param-name>contextConfigLocation</param-<param-value>/WEB-INF/myApplicationContext.xml</param-</context-*webapplicationContext.xml文</listener-<servlet-name>context</servlet-</servlet-<load-on-startup>1</load-on-applicationContext*springstruts-config.xml在struts-config.xml修改action-map標記,具體action交給了DelegateActionProxyspringspringapplicationContext.xml<beanname=”/login”class=”"*Springhibernate的配置文件中的主要類型有哪些?如何配置myeclipsespringhibernatespringhibernatehibernate.cfg.xmlspring+hibernateuserDao(extendsHibernateDaoSupport)*spring中如何配置容器的事物管理,相關的類有哪些userDaoProxyTarget:userDao:對象(目標對象*spring中如何配代碼的userDao*Spring中有幾種事物管理,分別是什么TransactonTemplate的execute方法中的類TransactionCallback中的nTransaction方法中使用publicvoid{TransactionTemplatejtm=newTransactionTemplate(this.getTransactionManager());jtm.execute(newmyClass1());}publicclassmyClass1implements{publicObjectnTransaction(TransactionStatus{JdbcTemplatejdbc=newJdbcTemplate(dataSource);jdbc.execute(”insertintocustomer(customerName)values(’b')”);jdbc.execute(”insertintocustomer(customerName)values(’b')”);returnnull;}}*springjdbcjdbc有什么區別Spring的jdbc:節省代碼不管連接(Connection)務不管異常不管關閉(con.close()ps.close)TransactionTemplate(transactionManager):**Spring配置的主 有什么?有什么作用<beanid=””class=””init=””destroy=””<property<property<ref**springapplicationContext.xml<beanid=”messageSource”<property在 下建多個properties文件對于非英文的要用native2ascii-encodinggb2312源 其命名格式是message_語言_國家。頁面中的中顯示提示信息,鍵名取鍵值。properties通過applictionContext.getMessage(“鍵名”,”參數”,”區域”)取出相關的信息。*spring中如何實現事件Extends器ImplementsImplements在applicationContext.xml中配置事件源、器*springwebweb.xmlweb/WEB-INF/applicationContext.xml<servlet-name>context</servlet-</servlet-<load-on-startup>1</load-on-ApplicationContextSpring如何實現資源管理applicationContext.getResource(“classpath:文件名”):在src根 applicationContext.getResource(“classpath:/chap01/文件名”):以src根 SpringApplicationContext的作用加入web框架中(加入一個servlet或器)**spring 是什么,各有什么作用BeanWrapper:getsetApplicationContext:BeanFactorySpringaop的關鍵名詞有哪些?各有什么作用器:Springstruts的區別strusts:MVCwebstrutshibernateibatisejbremotespringJDBCspringMVCspringstruts的面試ActionActionMVC,strutsMVCAOPIOCspringHibernateload()和get()的區別Struts1Action是單例模式并且必須是線程安全的,因為僅有Action的一個實例來處理所有的請求。單例策略限制了Struts1Action能作的事,并且要在開發時特別。Action資源必須是線程安全的或Struts2Action(實際上,servlet個請求產生許多可丟棄的對象,并且不會導致性能和回收問題)struts,servletjspmvcActionFromActionServletActionstruts-spring的就是IOC,通過指定對象的創建辦法,描述對象與服務之間的關系,而不生成對5.3,hql6.load()方法認為該數據一定存在,可以放心的使用來延時加載,如果使用過程中發現了問題,就拋出get()*Spring,hibernate,struts面試題并解析信息,創建對JDBC數據庫的代碼做了封裝,大大簡化了數據層繁瑣的重復性代碼HibernateJDBCORMDAOhibernateJavahibernate的性能非常好,因為它是個輕量級框架。的靈活性很出色。它支持各種關系數據庫,從HibernateHibernate2延遲加載實現:a)實體對 b)集合Hibernate3Hibernate的表與類都在一起,它們通過配置文件中的many-to-one、one-to-many、many-to-many、HibernateHibernateb) 第緩存的實HibernateSql、Criteria,objectcomptosition使向一對多關聯,不使用單向一對Bag,StrutsStruts的工作流程本對struts2的基本知識進行了一些說明,關于struts2的詳細內容應參struts2的文檔及提供的app實例下面對struts2的基本執行流程作一簡要說明,此流程說明可以結合提供的:(Filter其他過濾器(SiteMesh等、FilterDispatcher。注意:這里是有順序的,先ActionContextCleanUp,再其他過濾器(OthterFilters、SiteMesh,最后到FilterDispatcher是控制器的,就是MVC的Struts2中實現控制層(Controller)的。(有點struts1.x中ActionServlet的感覺FilterDispatcher詢問ActionMapper是否需要調用某個Action來處理這個(HttpServletRequest)ActionMapperAction,FilterDispatcherActionProxy。ActionProxy通過ConfigurationManager(struts.xml)詢問框架的配置文件,找到需要調用的Action類。例如,用戶示例將找到UserReg類。ActionProxy創建一個ActionInvocation實例,同時ActionInvocation通過模式調用Action。但在調用之前,ActionInvocation會根據配置加載Action相關的所有Interceptor(器。關于ActionInvocation的執行過程我們在五、2定義器最后的補充中已經進行了較詳細說明。一旦Action執行完畢,ActionInvocation負責根據struts.xml中的配置找到對應result。Factory(定義一個基類===》實現基類方法(子類通過不同的方法)===》定義一個工廠類(生成子類實例===》開發調用基類方Proxy(模式springDispatcherServlet查詢一個或多個HandlerMap,找到處理請求的Controller.3.DispatcherServletControllerControllerDispathcherViewResolverModelAndViewAOP讓開發可以創建非行為性的關注點稱為橫切關注點并將它們到應用程序代碼中使用AOP后,公共服務()就可以分解成方面并應用到域對象上,同時不會增加IOC允許創建一個可以構造對象的應用環境,然后向這些對象傳遞它們的協作對象。正如單詞倒置所表明的,IOC就像反 過來的JNDI。沒有使用一堆抽象工廠、服務、單元素(singleton)和直接構造(straightconstruction),每一個對象都是用 SpringAOPIOCSpringSpring,只要用JavaBean屬性和配置文件加入依賴性(協作對象)。然后可以很容易地在需要時替換具有類似接*springhibernate1IoC(InversionofControl)SpringDI(DependencyInjection)2、SpringBeansingleton、prototype、request、session、globalsession、application3SpringframeworkStrutsSpringStruts4、Hibernateupdate()saveOrUpdate()5SpringORMSpringHibernateSpringSetter( /articles/injection.html,/spring_ref/2.0/html/beans.html#beans-factorycollaborators)2application(Springframework2.0Reference3.4bean)3SpringStrutsMVCMVCC。SpringStruts:使用Spring的ActionSupport類整合Struts;使用Spring的DelegatingRequestProcessor覆蓋Struts的RequestProcessor;將StrutsAction管理委托給Spring框架,動作委托最好。(SpringStruts動作)Spring2.0新增式:AutowiringRequestProcessor(詳見http 4、saveOrUpdate()方法可以實現update()的功能,但會多些步驟,具體如下:session對象的標識符屬性(identifierproperty)save()方法保存它;sessionupdate()5contextDataSource,SessionFactoy,設置參數;DAOHibernateDaoSupport,HibernateTemplateOpenSessionInViewOpenSessionInViewFilterOpenSessionInViewInterceptor。(Springframework2.0Reference12.2式事務需事務管理器,在context中設置指定屬性,用確定和*spring中如何更加高效SpringJdbcTempleteJDBC代碼如下:JdbcTemplatetemplate=newDAOpublicclassStudentDaoJdbcimplementsStudentDao{privateJdbcTemplatejdbcTemplate;publicvoidsetJdbcTemplate(JdbcTemplatejdbcTemplate){this.jdbcTemplate=jdbcTemplate;}}<beanid=”jdbcTemplate”<property<ref<beanid=”studentDao”<property<ref<beanid=”courseDao”<property<ref*spring如何創建一個數據連接<beanid=”dataSource” <property<property<property<property*springbeanJNDI<beanid=”dataSource”<propertyname=”jndiName”> *springbean以后,增加了session、request、globalsession三種于Web應用程序上下文的Bean。因此,默認Spring2.0現在有五種類型的Bean。<beanid=”role”class=”spring.chapter2.maryGame.Role”scope=”singleton”/>scopespringbeanbean以后,增加了session、request、globalsession三種于Web應用程序上下文的Bean。因此,默認Spring2.0Bean。當然,Spring2.0BeanBeanBean,Bean1、singletonbeansingleton,SpringIOCbeansingleton,SpringIOCbean到單例緩存(singletoncache)中,并且所有針對該bean的后續請求和都將返回被緩存的對象singletonGOFClassLoaderclasssingletonbean,也就是說當一beansingleton,springIOCbean。<beanid=”role”class=”spring.chapter2.maryGame.Role”scope=”singleton”/><beanid=”role”class=”spring.chapter2.maryGame.Role”2、prototypebean,每一次請求(beangetBean()方法)beannewprototypebean,裝飾或者是裝配完一個prototype實例后,將它交給客戶端,隨后就對該prototype實例了。不prototypeprototypeprototypebean的昂貴資源,都是客戶端代碼的職責。(Springsingletonbean行方式是,通過使用bean的后置處理器,該處理器持有要被清除的bean的。)<beanid=”role”class=”spring.chapter2.maryGame.Role”scope=”prototype”/><beanid=”role”class=”spring.chapter2.maryGame.Role”3、request、session、globalsessionwebweb.xml如果你使用的是Servlet2.4及以上的web容器,那么你僅需要在web應用的XML文件web.xml中增ContextListener<web-……</web-Servlet2.4webjavax.servlet.Filter<web-<filter-name>reqontextFilter</filter-<filter-class>org.springframework.web.filter.ReqontextFilter</filter-<filter-map<filter-name>reqontextFilter</filter-<url-pattern>/*</url-</filter-map…</web-bean<beanid=”role”class=”spring.chapter2.maryGame.Role”4、sessionHTTPbean,beanHTTPrequestweb<beanid=”role”class=”spring.chapter2.maryGame.Role”5、globalglobalsessionHTTPSessionportletweb有意義。PortletSessionportletwebportletglobalsessionbeanportletSessionwebglobalsessionbean,那么,websessionrequestweb<beanid=”role”class=”spring.chapter2.maryGame.Role”scope=”global6beanspring2.0(但singletonprototype),springscope,scopepublicclassMyScopeimplementsScopeprivatefinalThreadLocalthreadScope=newThreadLocal()…{protectedObjectinitialValue()…{returnnew}publicObjectget(Stringname,ObjectFactoryobjectFactory)Mapscope=(Map)threadScope.get();Objectobject=scope.get(name);if(object==null)…{object=objectFactory.getObject();scope.put(name,object);}return}publicObjectremove(Stringname)…{Mapscope=(Map)threadScope.get();returnscope.remove(name);}publicvoidregisterDestructionCallback(Stringname,Runnablecallback)}publicStringgetConversationId()//TODOAuto-generatedmethodstub}}*springbean一、BeanSpringBean<?xmlversion=”1.0″encoding=”UTF-<beansxmlns=”xmlns:xsi=”<beanid=”oWorld”class=”com.pqf.beans.<property<value>這個配置文件就定義了一個標識為oWorld的Bean。在一個配置文檔中可以定義多個Bean二、BeanBean1init-methodBeanBeaninit(),如:publicclassoWorld{publicStringmsg=null;publicDatedate=null;publicvoidinit(){date=newDate();}}init-mothod<beanid=”oWorld”class=”com.pqf.beans.oWorld”init-mothod=”init”2、實現org.springframwork.beans.factory.InitializingBeanBeanInitializingBeanafterPropertiesSet()publicclassoWorldimplementInitializingBean{publicStringmsg=null;publicDatepublicvoidafterPropertiesSet()msg=”date=new}}那么,當這個BeanSpringBeanFactoryafterPropertiesSet()方Beaninit-method三、BeanBean1oWorldhw=newoWorld();BeanWrapperbw=newBeanWrapperImpl(hw);2InputStreamis=newXmlBeanFactoryfactory=newoWorldhw=(oWorld)factory.getBean(”3ApplicationContextactx=newFleSystemXmlApplicationContext(”config.xml”);oWorldhw=(oWorld)actx.getBean(”oWorld”);四、Bean1、使用配置文件中的destory-method與初始化屬性init-methodsBeanBeandestory-methodbean,Spring2、實現org.springframwork.bean.factory.DisposebleBeanDestory*Springbeanxmlbean配置在xml里面,spring提供多種方式配置文件得到第式BeanBeanApplicationContextac=newFileSystemXmlApplicationContext(”applicationContext.xml”)第二種方式B/Sweb.xmlbeanWebAppliCationContextUtilApplicationContextctx=WebApplicationContextUtils.getRequiredWebApplicationContext(ServletContextsc);ApplicationContextctx WebApplicationContextUtils.getWebApplicationContext(ServletContext其中servletContextsc可以具體換成servlet.getServletContext()或者或者springServletContextServletContextWebApplicationContextWebApplicationContextwebApplicationContext=(WebApplicationContext)*Spring框架有哪幾部分組成Spring框架有七個模塊組成組成,這7個模塊(或組件)均可以單獨存在,也可以與其它一個或多個模塊聯?Spring容器(Core):提供Spring框架的基本功能。容器的主要組件是BeanFa
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 民事調解的方法和策略課件
- 自動門項目運營方案
- 2025年春國家開放大學《馬克思主義基本原理》期末終考試卷1參考答案試卷1
- 設備工作計劃13篇
- 幼兒園 中班科學奇妙的樹葉課件
- Unit 10 Lesson 3 Thinkign Skills and Reading Strategies 課件 2024-2025學年仁愛科普版英語七年級下冊
- 2025年Android性能優化總結BAT大廠面試總結
- 部編版五年級上冊第二單元《搭石》教案
- 建筑施工特種作業-建筑架子工附著式腳手架真題庫-6
- 色彩文案題目大全及答案
- 2025至2030中國成人用品行業產業運行態勢及投資規劃深度研究報告
- 2025年重慶市九年級中考語文試題卷及答案解析
- 公安院校公安學科專業招生政治考察表
- 2024年內蒙古錫林郭勒職業學院招聘真題
- 民航招飛駕駛測試題及答案
- 北京稅務籌劃課件
- 內燃機技術協議書
- 數字智慧方案數字鄉村信息化建設及精細化治理平臺建設方案
- 2024年隴南市事業單位專業技術人才引進筆試真題
- 2025屆浙江省精誠聯盟高三下學期適應性聯考生物試題
- 《中央銀行數字貨幣基本知識》課件
評論
0/150
提交評論