java spring框架

spring架構圖

core:ioc和aop

擴展框架:spring mvc,dao,jdbc

一 概念:

spring是一個框架,可以理解爲一個IOC容器,容器裏裝着bean,bean可以理解爲一個類;早起版本只有core,其他組件都是後來新版本逐步新加的

spring mvc是web自框架,與其他web框架例如struts2

二原理:

1 spring mvc原理

web程序啓動時,ContextLoaderServlet加載xml配置文件,初始化DispatchServlet--------http請求-------容器(Tomcat)解析http---------request-------映射關係(路徑,方法,參數)--------DispatchServlet---------HandlerMapping--------HandlerAdapter-- ----controller-------ModelAndView------------ViewResolver-------View------render


interface FrameworkServlet{

    private webApplicationContext;

    public initFrameworkServlet(){//初始化HandlerMappings類的對象}

    public doGet(){serviceWrapper();}

    public doPost(){serviceWrapper();}

    public serviceWrapper(){doService() ;}

    public doService(){doDispatch(request, response);}

    doDispatch(request, response){

         HandlerExecutionChain mappedHandler = null;

         //從HandlerMappings list列表中取HandlerMapping對象;每個HandlerMapping對象代表一個Controller和URL的映射

         //其實在運行的時候是一個HandlerExecutionChain和URL的映射,而HandlerExecutionChain對象其實就是對Controller和它          //interceptors的一個包裝器,可以把HandlerMapping看成Controller和URL的映射

         mappedHandler = getHandler(processedRequest, false);

      }


}

DispatchServlet implement FrameworkServlet


三xml配置

web.xml

applicationcontext.xml

<servletname>servlet.xml


action.xml

service.xml

dao.xml


四註解

1 bean相關注解

@Component   對比較中立的類進行註解,現在不推薦使用


@controller      表現層bean,即structs框架的action

@service          業務層bean

@Repository   數據訪問層bean


@scope範圍

sigleton,proproty,request,session,global session


2 spring mvc相關注解

@handlemapping

handleradapter

resolveview

view


3 數據綁定

httprequest與註解方法參數之間的轉換稱之爲數據綁定 data bind

五 面向切面編程AOP

簡介:對公共行爲的抽象,包括日誌,權限,異常處理,事務處理

1 反射機制 reflection,也稱內省inrospection

    java程序可以加載一個運行時才得知名稱的class,獲悉其完整構造,並生成其對象實體,或設置field值,或調用method

    通過java.lang.Class    java.lang.reflect包中的Method,Field,Constructor等實現

2 動態代理與CGLIB代理

   動態代理:自定義handler    InvorcationHandler

3 基本概念

連接點join point:程序運行某個階段的點,例如方法調用,異常拋出

切入點pointcut:連接點集合,需要注入adive位置的地方,指明advice在什麼條件下才能觸發

advisor:連接pointcut和adive的配置器

通知advice:某個連接點所採用的處理邏輯

4 基於xml配置的aop
<aop:config>  
           <aop:pointcut/>
           <aop:aspect>
           </aop:aspect>
 </aop:config>
5 基於@AspectJ註解的aop
 AspectJ是AOP的一種實現,spring集成了它
   @Aspect
   @Pointcut
   @Before等


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章