SpringFramework是一個采用了反轉控制(InversionofControl,IoC)策略的基于J2EE的輕量級應用框架。SpringFramework的核心是IoC容器,對于其它應用,如數據庫訪問,日志等,SpringFramework多使用現有的、成熟的框架。SpringFramework采用了模塊化的方式,各模塊可以共同使用,也可以單獨使用其中的一個模塊,SpringFramework的一個模塊提供了對動態AOP的支持,SpringFramework中提供的聲明式事務管理就是基于動態AOP的。
SpringFramework的AOP實現不同于AspectJ與AspectWerkz,它不是完全的AOP實現,而是設計用于在應用服務器環境下實現AOP,與SpringFramework的IoC容器配合使用。SpringFramework中參考,切入點與方面均由普通Java對象實現,其中連接點模型與AspectJ相同,只是遠不如AspectJ豐富,目前只提供對方法調用的攔截。有4種類型的參考,分別為方法調用時,之前,返回時與拋出異常時,通過實現SpringFramework的參考接口可以自定義參考類型。在SpringFramework中,方面稱為Advisor,是一個包含參考與切入點的Java類。像其它由IoC容器管理的組件一樣,參考,切入點與方面也由IoC容器管理,由XML配置文件定義。配置的內容包括業務對象的接口與實現,自定義的或由SpringFramework提供的切入點與參考類,或使用Adviser類取代單獨的切入點與參考類。在運行時,通過IoC容器進行名稱查找,就可以由容器使用代理機制自動產生代理對象,并在符合切入點定義的連接點處執行參考。SpringFramework除自身實現的AOP框架外,還在尋求與其它AOP實現機制的整合,目前已經實現了與AspectJ的整合,以利用AspectJ豐富的切入點語法,并利用AspectJ的方面實現。
3.4JBoss
JBoss是一個開源的符合J2EE規范的應用服務器,作為J2EE規范的補充,Jboss中引入了AOP框架,為普通Java類提供了J2EE服務,而無需遵循EJB規范。Jboss通過類載入時,使用Javassist對字節碼操作實現動態AOP框架,Javassist是一個開源的編輯字節碼的類庫。