Spring學習筆記

第一部分:Spring架構的分析。  兩個核心概念:IoC、AOP。  IoC:實際上依靠工廠模式,實現控制反轉。  html

步驟:讀取配置文件,利用Java反射機制,生成對象,將對象返回給調用者。  前端

瞭解兩個類:BeanFactory和ApplictionContext    java

Spring源碼結構的解讀:用Ant生成Spring相關包,文檔等。   CVS下載Spring源碼。安裝Spring。    spring

Ioc詳解:  Bean的生命週期:定義、初始化、使用、銷燬。  Bean的初始化。express

經過AutoWrite、dependency-check、Setter方法、setBeabFactory、   經過配置初始化前、後方法等。編程

Bean建立的方式有:單例建立,原型建立。Spring只能管理單例建立的Bean。    安全

propertyConfigurer、ProertyOverrideConfiger 配置其它須要加入到Spring裏的文件。  服務器

初始化spring的方法:ClassPathXmlApplicationContext  網絡

BeanFactoryAware與BeanNameAware ApplicationContextAware  Spring屬性編輯器。事件監聽器。    架構

BeanFactory提供管理和操做Bean的功能。  

ApplictionContext繼承了BeanFactory類,因此提供比BeanFactory更強大的功能。  在整合Web項目時候,ctx能夠自動初始化。能夠經過ContextLoaderListener或ContextLoaderServlet實現自 動加載。  

AOP詳解:  核心關注點,橫切關注點,建議,切入點,織入。OOP編程與AOP編程。提供系統級的服務。與具體業務關係不大。  經常使用於系統級服務,好比:日誌、事務、權限等。  

使用AOP編程的步驟:先抽象出橫切面,即次要業務,再用一個建議者(advice)管理橫面,  定義須要使用橫切功能的點(pointcut),把切面織入(weave)進去。方式有前,後,中等。  

<tx:advice id="txAdvice" transaction-manager="reportTransactionManager">     

  <tx:attributes>        

    <tx:method name="*" rollback-for="Exception"/>     

  </tx:attributes>  

</tx:advice>  

<aop:config>   

  <aop:pointcut id="txOperation"  expression="@annotation(org.springframework.transaction.annotation.Transactional)" />     

   <aop:advisor advice-ref="txAdvice" pointcut-ref="txOperation"/>        

</aop:config>    

Spring架構模塊:AOP、IOC、ORM、DAO、Spring Web、Spring上下文、Spring MVC

 

第二部分:Spring應用開發。   

1.JNDI(Java Naming and Directory Interface):java命名目錄服務。

通常用於數據源配置。   使用JNDI經常使用的三個類:AbstractJndiLocator JndiObjectFactoryBean JndiObjectTargetSource   建議直接使用JndiObjectFactoryBean這種形式,它是用於產品部署場合。而JndiObjectTargetSource用於產品 開發場合。   JndiTemplate類,用於改造操做。方便使用。    

2.JTA(Java Transaction API):Java事務API.   platformTransactionManager:Spring的事務管理中,這是最基本的接口。  

已經實現上面接口的經常使用事務管理器:JDBC事務、JTA事務、Hibernate事務、JDO事務、OJB事務、JMS事務。   

TransactionDefinition:事務的屬性定義。   7種事務移植策略[事務的傳播屬性]:    PROPAGATION_REQUIRED(若是已在事務中,則使用原來的,不然新開一個事務)     PROPAGATION_SUPPORTS(若有事務,則以事務的形式運行,如沒有事務,則以非事務的形式運行)     PROPAGATION_MANDATORY(必須在一個事務中運行)     PROPAGATION_REQUIRES_NEW(在新事務中運行,即每次啓動一個事務)     PROPAGATION_NOT_SUPPORTED(不能運行在事務中,若是有事務,則客戶事務掛起)     PROPAGATION_NEVER(不能運行在事務中,不然拋異常)     PROPAGATION_NESTED(支持嵌套式事務)   TransactionTemplate事務模板的使用。[在編程式事務管理裏,可使用]    

3.JMS(Java Message Service):Java消息服務。   

JmsTemplate的使用:配置相關的xml,主要有目的地的配置 template的配置   JmsTemplate與MessageCreator結合使用,完成消息的發送工做。   詳細瞭解消息的發送與接收原理。Bean轉換功能的實現。    

4.JavaMail:Java郵件服務。   MailSender接口的兩個實現類:CosMailSenderImpl、JavaMailSenderImpl   CosMailSenderImpl用於通常郵件的發送,在配置文件裏配置CosMailSenderImpl和SimpleMailMessage 信息。   JavaMailSenderImpl用於發送複雜的郵件,配置JavaMailSenderImpl 用MimeMessagePreparator的回調方法,實現郵件發送。    

5.EJB(Enterprise JavaBean):企業級Bean。Spring對無狀態會話Bean有很好的支持。   幾種Bean 無狀態、有狀態、JMSBean(消息驅動Bean)等。主要了解Spring對AbstractStatelessSessionBean的支持。     

6.持久化服務:DAO ORM JDBC   瞭解JdbcDaoSupport HibernateDaoSupport JdoDaoSupport的使用。它們都繼承了DaoSupport。   具體的使用通常是用它們的模板類:JdbcTemplate/HibernateTemplate/JdoTemplate類進行數據操做。   以JdbcTemplate的使用爲例子,說明其應用的基本思路:   1.配置數據源,把數據關聯到JdbcTemplate上,只需關聯一次,便可知足全部的要使用的JdbcTemplate。    [擴展知識點:Spring配置數據源的方式 dbcp BoneCP c3p0]   2.JDBC事務的管理:DataSourceTransactionManager   3.Spring與Hibernate的集成。瞭解關係型數據與JavaBean對象的映射。     

7.任務調度服務:Queatz Timer Spring集成了上面兩種定義任務調度服務。   一個是開源社區裏的項目,一個是Java2版本里提供的任務調度器。   Queatz與Spring集成要了解的幾個經常使用類:QueatzJobBean JobDetailBean SimpleTriggerBean等。   重點看MethodInvokingJobDetailFactoryBean   Timer與上面的那個相似。它是Java原本就帶有的類。不用從新學習新的一套類庫。   基本使用:Spring經過配置文件,定義任務執行的時間點與週期,咱們只須要開要執行的任務類便可。   

8.遠程服務:支持RMI、Hessian、Burlap、HTTP Invoker、Web服務(JAX-RPC)、企業Bean。   補充知識點:遠程服務調用,參數的傳遞,一般參數類序列化,以便能在客戶端與服務器端進行交互。   RMI(Remote Method Invocation):JDK自己提供的用於支持分佈式開發的技術。在網絡受限制的狀況不適用。   Hession與Burlap:因爲上述的技術,服務器端與客戶端都要用Java語言編寫,而且它們之間不能有防火牆,    正是這些緣由,出現了這兩種技術。要用到第三方的序列化機制。   HTTP Invoker:集合了上面三種技術的優勢。JDK自己提供的序列化機制。支持在網絡受限的狀況使用。   

 

第三部分:Spring高級應用。     

1.視圖技術集成:Struts、Spring MVC、Tapestry、JSF等。    Spring MVC DispatherServlet前端控制器,用於請求分發。    處理流程:     DispatherServlet接收http請求,分發給相應用Control,Control轉換請求信息,處理請求,     返回ModelAndView 解釋 返回到視圖。       

Tapestry與Spring集成:Tapestry是基於組件、事件的OO編寫Web視圖層的框架。     幾個概念:Visit Engine HttpSession Page和組件模板。。     Tapestry由三部分組成:HTML模板,頁面規範文件,Java文件。         

JSF(JavaServer Faces):基於Web前端標準而開發的一個框架。       

2.Spring安全框架:Acegi 與事務管理同樣,都是聲明式管理,原理相同,都是抽象出切面單獨進行開發。    

 

原文來自:http://www.cnblogs.com/lils/p/3723480.html

相關文章
相關標籤/搜索