在Spring2中使用引介

2021-04-14 07:42:56 字數 1828 閱讀 3802

今天基本上把《深入spring2:輕量級j2ee開發框架原理與實踐》

中的aop一章的最後的示例程式理清了,將會在這兩天整理好後發出來。實在太睏了,清理一下頭緒,這裡隨便寫一點關於spring2中最簡單的引介introduction使用方法!

引介(introduction)是指在不更改源**的情況,給乙個現有類增加屬性、方法,以及讓現有類實現其它介面或指定其它父類等,從而改變類的靜態結構。spring aop通過採**加***的方式來實現的,可以通過***機制使乙個實有類實現指定的介面,由於是使用***的機制,因此spring aop中引介的底層仍然是通知(advice)及攔截(interceptor)。spring2引入了對aspectj5的切入點表示式解析引擎,因此,對於一些普通的aop切面模組功能,可以像aspectj一樣來使用aop。本文簡單演示spring2中引介的使用!

假如有乙個類demo.heroimpl,現在我們要在系統中增加乙個**arthero介面,現在需要在不改變demo.heroimpl的**的情況下,讓heroimpl物件實現**arthero介面。

**arthero介面的內容如下:

public inte***ce **arthero

有乙個**arthero的實現**artheroimpl,內容如下:

public class **artheroimpl implements **arthero

} 現在要讓demo.heroimpl實現**arhero介面,可以通過下面的方式:

1、定義乙個切面

import org.aspectj.lang.annotation.declareparents;

import org.aspectj.lang.annotation.aspect;

public class aspectintro

2、在配置檔案中使用使用來開始@aspectj自動**。

3、宣告乙個切面bean。

4、所有由spring容器管理的heroimpl物件都將會自實現了**arthero介面。在客戶端可以這樣來使用:

heroimpl hero=(heroimpl)factory.getbean("hero");

**arthero hero=(**arhero)hero;

當然,spring2中也支援老版本aop api中的proxyfactorybean來定義引介。要實現上面的功能,可以使用大致如下的方法:

1、定義乙個introductionadvisor(引介器),直接繼承defaultintroductionadviso來得到!

import org.springframework.aop.support.defaultintroductionadvisor;

import org.springframework.aop.support.delegatingintroductioninterceptor;

public class **artherointroductionadvisor extends defaultintroductionadvisor

}

2、在spring配置檔案配置乙個introductionadvisor。如下:

class="demo.superherointroductionadvisor" />

3、使用**proxyfactorybean來定義hero,如下:

easyjf開源團隊

大峽trackback: http://tb.blog.csdn.net/trackback.aspx?postid=1384651

在spring中使用quartz

好吧!我承認我對quartz並不熟悉,這種境況需要通過學習它,使用它去改變。先記錄下最進在spring中使用quartz的經驗。spring中提供了對quartz的支援,使得在spring使用quartz變得很容易,只需要在配置檔案中進行配置就行了。當然在路徑中要加入相應的jar包,我用的是quar...

在Spring中使用JMS

spring對jms進行封裝,使用起來更簡單。以下給出範例 供參考!在spring中可以用jmstemplate物件來傳送 接收訊息。1 連線工廠 在非web ejb容器中使用pool時,要手動stop,spring不會為你執行destroy method的方法。如果使用了pooledconnect...

使用Spring2宣告式事務過程中碰到了乙個小意外

問題描述 專案中我使用的是spring2宣告式事務,並將此事務作用於service層 業務邏輯層 部分配置 如下所示 如果你在service層的方法中使用try catch塊,那麼有時問題出現了 1.就算有異常,它也不會捕獲。即不起作用。2.事務不會回滾。解決方案 由於spring2做了將異常統一為...