




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第11章Spring框架01Spring概述02SpringIoC03AOP概述04Spring的切入點05Aspect對AOP的支持06Spring持久化1
Spring概述Spring組成Spring的配置結構使用BeanFactory管理BeanApllicationContext接口1.ClassPathXmlApplicationContext類從當前類路徑中檢索配置文件并加載來創建容器的實例,其語法格式如下:ApplicationContextcontext=newClassPathXmlApplicationContext(StringconfigLocation);configLocation參數指定Spring配置文件的名稱和位置。2.FileSystemXmlApplicationContext類該類不從類路徑中獲取配置文件,而是通過參數指定配置文件的位置。它可以獲取類路徑之外的資源,其語法格式如下:ApplicationContextcontext=newFileSystemXmlApplicationContext(StringconfigLocation);3.WebApplicationContext類WebApplicationContext是Spring的Web應用容器,在Servlet中使用該類的方法一是在Servlet的web.xml文件中配置Spring的ContextLoaderListener監聽器;二是修改web.xml配置文件,在其中添加一個Servlet,定義使用Spring的org.springframework.web.context.ContextLoaderServlet類。2
SpringIoC控制反轉與依賴注入什么是依賴注入?IoC將創建實例的任務交給IoC容器,這樣開發應用代碼時只需要直接使用類的實例,這就是IoC控制反轉,即“依賴注入”依賴注入的3種實現類型接口注入Setter注入構造器注入配置Bean要在SpringIoC容器中獲取一個bean,首先要在配置文件中的<beans>元素中配置一個子元素<bean>,Spring的控制反轉機制會根據<bean>元素的配置來實例化這個bean實例。<beanid="test"class="com.mr.Test"/>Setter注入publicclassUser{privateStringname;//用戶姓名privateIntegerage;//年齡privateStringsex;//性別……//省略的Setter和Getter方法}<!--UserBean--><beanname="user"class="com.mr.user.User"><propertyname="name"><value>無語</value></property><propertyname="age"><value>30</value></property><propertyname="sex"><value>女</value></property></bean>在上面的代碼中,<value>標簽用于為name屬性賦值,這是一個普通的賦值標簽。直接在成對的<value>標簽中放入數值或其他賦值標簽,Spring會把這個標簽提供的屬性值注入到指定的JavaBean中。構造器注入//構造方法publicUser(Stringname,Integerage,Stringsex){=name;this.age=age;this.sex=sex;}<!--UserBean--><beanname="user"class="com.mr.user.User"><constructor-arg><value>無語</value></constructor-arg><constructor-arg><value>30</value></constructor-arg><constructor-arg><value>女</value></constructor-arg></bean>在類被實例化時其構造方法被調用并且只能調用一次,所以構造器被常用于類的初始化操作。<constructor-arg>是<bean>元素的子元素,通過<constructor-arg>元素的<value>子元素可以為構造方法傳參。引用其他Bean和創建匿名內部JavaBean<beanname="/main.do"class="com.mr.main.Manager"><propertyname="user"><reflocal="user"/></property></bean><beanid="school"class="School"><propertyname="student"><beanclass="Student"/></property></bean>引用其他Bean創建匿名內部JavaBean3
AOP概述什么是AOP?AspectOrientedProgramming,即面向切面編程。切面是對象操作過程中的截面AOP術語切入點是連接點的集合對象操作過程中的某個階段點通知是某個切入點被橫切后所采取的處理邏輯,即在“切入點”處攔截程序后通過通知來執行切面4
Spring的切入點靜態與動態切入點靜態切入點動態切入點靜態切入點可以為對象的方法簽名,如在某個對象中調用了execute()方法時,這個方法即靜態切入點靜態切入點只能應用在相對不變的位置,而動態切入點可應用在相對變化的位置,如方法的參數上。深入靜態切入點靜態切入點在某個方法名上織入切面,所以在織入程序代碼前要匹配方法名,即判斷當前正在調用的方法是不是已經定義的靜態切入點。如果是,說明方法匹配成功并織入切面;否則匹配失敗,不織入切面。<!--深入靜態切入點--><beanid="pointcutAdvisor"class="org.springframework.aop.support.RegexpMethodPointcutAdvisor"><propertyname="patterns"><list><value>.*execute.*</value><!--指定切入點--></list></property></bean>publicbooleanmatches(Methodmethod,ClasstargetClass){return(method.getName().equals("execute"));//匹配切入點成功}Spring中的其他切入點切入點實現類說
明org.springframework.aop.support.JdkRegexpMethodPointcutJDK正則表達式方法切入點org.springframework.aop.support.NameMatchMethodPointcut名稱匹配器方法切入點org.springframework.aop.support.StaticMethodMatcherPointcut靜態方法匹配器切入點org.springframework.aop.support.ControlFlowPointcut流程切入點org.springframework.aop.support.DynamicMethodMatcherPointcut動態方法匹配器切入點5
Aspect對AOP的支持Aspect概述Aspect即Spring中所說的切面,它是對象操作過程中的截面.AspectJ是Spring框架2.0版本之后增加的新特性,Spring使用了AspectJ提供的一個庫來完成切入點的解析和匹配。但是AOP在運行時仍舊是純粹的SpringAOP,它并不依賴于AspectJ的編譯器或者織入器,在底層中使用的仍然是Spring2.0之前的實現體系。Spring中的AspectDefaultPointcutAdvisor切入點配置器DefaultPointcutAdvisor位于org.springframework.aop.support.DefaultPointcutAdvisor包下的默認切入點通知者,它可以把一個通知配給一個切入點,使用之前首先要創建一個切入點和通知。創建通知publicTestAdviceimplementsMethodInterceptor{publicObjectinvoke(MethodInvocationmi)throwsThrowable{ObjectVal=ceed();returnVal;}}創建切入點publicclassTestStaticPointcutextendsStaticMethodMatcherPointcut{publicbooleanmatches(MethodmethodClasstargetClass){return(“targetMethod”.equals(method.getName()));}publicClassFiltergetClassFilter(){returnnewClassFilter(){publicbooleanmatches(Classclazz){return(clazz==targetClass.class);}};}}6
Spring持久化DAO模式Spring提供了一套抽象的DAO類供開發人員擴展,這有利于以統一的方式操作各種DAO技術,DAO模式JdbcDaoSupportHibernateDAO抽象類,開發人員需要為其配置HibernateSessionFactory,通過其子類能夠獲得Hibernate實現HibernateDaoSupportHibernateDAO抽象類,開發人員需要為其配置HibernateSessionFactory,通過其子類能夠獲得Hibernate實現。JdoDaoSupportSpring為JDO提供的DAO抽象類,開發人員需要為它配置PersistenceManagerFactory,通過其子類能夠獲得JdoTemplate。事務管理Spring中的事務基于AOP實現,而Spring的AOP以方法為單位,所以Spring的事務屬性是對事務應用的方法的策略描述。這些屬性為傳播行為、隔離級別、只讀和超時屬性。編程式事務管理在Spring中主要有兩種編程式事務的實現方法,分別使用PlatformTransactionManager接口的事務管理器或TransactionTemplate實現。二者各有優缺點,推薦使用后者實現方式,因其符合Spring的模板模式。聲明式事務管理聲明式事務不涉及組建依賴關系,它通過AOP實現事務管理,在使用聲明式事務時不須編寫任何代碼即可通過實現基于容器的事務管理。Spring提供了一些可供選擇的輔助類,它們簡化了傳統的數據庫操作流程。在一定程度上節省了工作量,提高了編碼效率,所以推薦使用聲明式事務。應用JdbcTemplate操作數據庫方法名稱說
明intQueryForInt(Stringsql)返回查詢的數量,通常是聚合函數數值intQueryForInt(Stringsql,Object[]args)longQueryForLong(Stringsql)返回查詢的信息數量longQueryForLong(Stringsql,Object[]args)ObjectqueryforObject(stringsql,ClassrequiredType)返回滿足條件的查詢對象ObjectqueryforObject(stringsql,ClassrequiredType,Object[]args)ListqueryForList(Stringsql)返回滿足條件的對象List集合ListqueryForList(Stringsql,Object[]args)JdbcTemplate類是Spring的核心類之一,可以在org.springframework.jdbc.core包中找到。該類在內部已經處理數據庫資源的建立和釋放,并可以避免一些常見的錯誤,如關閉連接及拋出異常等,因此使用JdbcTemplate類簡化了編寫JDBC時所需的基礎代碼。與Hibernate整合在Spring中整合Hibernate4時,已經不再提供HibenateTemplate和HibernateDaoSupport類了,而只有一個稱為LocalSessionFactoryBean的SessionFactoryBean,通過它可以實現基于注解或是XML文件來配置映射文件。與Hibernate整合#數據庫驅動hibernate.connection.driver_class=com.mysql.jdbc.Driver#數據庫連接的URLhibernate.connection.url=jdbc:mysql://localhost:3306/test#用戶名hibernate.connection.username=root#密碼hibernate.connection.password=123456與Hibernate整合<!--引入配置文件--><bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <propertyname="locations"> <value>classpath:perties</value> </property></bean><beanid="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <propertyname="driverClassName"value="${hibernate.connection.driver_class}"/> <propertyname="url"value="${hibernate.connection.url}"/> <propertyname="username"value="${hibernate.connection.username}"/> <propertyname="password"value="${hibernate.connection.password}"/></bean>引入perties文件并配置數據源dataSource與Hibernate整合<beanid="sessionFactory" class="org.springframework.orm.hibernat
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工業廢水處理與環境保護
- 工業廢水處理技術與策略
- 工業控制系統信息安全防護策略與實踐
- 工業建筑節能與環保技術
- 工業污染控制與治理技術進展
- 工業機器人技術發展現狀及趨勢分析匯報材料
- 工業自動化中的變電站設計與配置策略
- 工業污染防治措施分析
- 工業設計中的新材料技術及其優勢分析
- 工業生產環境監控技術及優化策略
- 2025天津市龍網科技發展有限公司招聘9人筆試參考題庫附帶答案詳解
- 2024年甘肅省西部計劃真題
- 2024北京重點校八年級(下)期末道德與法治匯編:人民當家作主章節綜合
- 保潔員三級安全教育試題及答案
- CJ/T 189-2007鋼絲網骨架塑料(聚乙烯)復合管材及管件
- 2025年智慧農業與可持續發展考試題及答案
- 2025年北京市各區高三語文二模卷《論語》《紅樓夢》試題匯集附答案
- 《ICF康復工具》課件 - 以ICF為核心的專業康復指導手冊
- 高企財務培訓課件
- DB36T 2111-2024 柄用芋生產技術規程
- 國家開放大學2025年《創業基礎》形考任務2答案
評論
0/150
提交評論