亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JSP > 正文

JSP開發之Spring方法注入之替換方法實現

2024-09-05 00:18:54
字體:
來源:轉載
供稿:網友

Spring IOC容器能夠復制bean方法,該函數主要由cglib實現,它可以在運行時動態操作類字節碼,下面錯新技術頻道和大家一起了解JSP開發之Spring方法注入之替換方法實現。

JSP開發之Spring方法注入之替換方法實現

Spring提供了一種替換方法實現的機制,可以讓我們改變某個bean某方法的實現。打個比方我們有一個bean,其中擁有一個add()方法可以用來計算兩個整數的和,但這個時候我們想把它的實現邏輯改為如果兩個整數的值相同則把它們相乘,否則還是把它們相加,在不改變或者是不能改變源碼的情況下我們就可以通過Spring提供的替換方法實現機制來實現這一要求。

替換方法實現機制的核心是MethodReplacer接口,其中定義了一個reimplement ()方法,我們的替換方法實現的主要邏輯就是在該方法中實現的,

具體定義如下:

public interface MethodReplacer { /** * Reimplement the given method. * @param obj the instance we're reimplementing the method for * @param method the method to reimplement * @param args arguments to the method * @return return value for the method */ Object reimplement(Object obj, Method method, Object[] args) throws Throwable;}

我們可以看到reimplement()方法將接收三個參數,其中obj表示需要替換方法實現的bean對象,method需要替換的方法,args則表示對應的方法參數。針對前面打的比方,假設我們有如下這樣一個類定義對應的bean。

public class BeanA { public int add(int a, int b) { return a+b; } } <bean id="beanA" class="com.app.BeanA"/>

如果我們需要替換add()方法的實現為a與b相等時則相乘,否則就相加,則我們可以針對該方法提供一個對應的MethodReplacer的實現類,具體實現如下所示。

public class BeanAReplacer implements MethodReplacer { /** * @param obj 對應目標對象,即beanA * @param method 對應目標方法,即add * @param args 對應目標參數,即a和b */ public Object reimplement(Object obj, Method method, Object[] args)  throws Throwable { Integer a = (Integer)args[0]; Integer b = (Integer)args[1]; if (a.equals(b)) {  return a * b; } else {  return a + b; } }}

之后就需要在定義beanA時指定使用BeanAReplacer來替換beanA的add()方法實現,這是通過replaced-method元素來指定的。其需要指定兩個屬性,name和replacer。name用來指定需要替換的方法的名稱,而replacer則用來指定用來替換的MethodReplacer對應的bean。所以,此時我們的beanA應該如下定義:

<bean id="beanAReplacer" class="com.app.BeanAReplacer"/> <bean id="beanA" class="com.app.BeanA"> <replaced-method name="add" replacer="beanAReplacer"/> </bean>

如果我們的MethodReplacer將要替換的方法在對應的bean中屬于重載類型的方法,即存在多個方法名相同的方法時,我們還需要通過在replaced-method元素下通過arg-type元素來定義對應方法參數的類型,這樣就可以區分需要替換的是哪一個方法。所以,針對上述示例,我們也可以如下定義:

<bean id="beanAReplacer" class="com.app.BeanAReplacer"/> <bean id="beanA" class="com.app.BeanA"> <replaced-method name="add" replacer="beanAReplacer">  <arg-type match="int"/>  <arg-type match="int"/> </replaced-method> </bean>

對應方法名的方法只存在一個時,arg-type將不起作用,即Spring此時不會根據arg-type去取對應的方法進行替換,或者換句話說就是當replaced-method指定名稱的方法只存在一個時,無論arg-type如何定義都是可以的。

上述的資料是錯新技術頻道小編帶來的關于JSP開發之Spring方法注入之替換方法實現,其實面對互聯網帶來的便利,希望能幫到大家。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美成人免费视频| 午夜精品www| 日韩电影中文字幕| 久久人人爽人人爽爽久久| 国产精品久久久久国产a级| 国产一区二区黄| 高清一区二区三区日本久| 欧美一级片免费在线| 亚洲国产成人一区| 成人免费视频97| 日韩av一区在线观看| 国产精品aaa| 国产精品免费久久久久久| 国产精品美腿一区在线看| 久久精品视频中文字幕| 成年人精品视频| 91久久久久久国产精品| 国产成人精品视| 国产亚洲一级高清| 国产一区二区黑人欧美xxxx| 久久男人的天堂| 亚洲最大成人网色| 久久久999国产精品| 亚洲国产精品人久久电影| 日韩av在线网站| 日韩中文字幕在线精品| 久久久久久国产三级电影| 欧美在线xxx| 全色精品综合影院| 久久精品99久久久香蕉| 久久理论片午夜琪琪电影网| 国产精品视频自在线| 国产精品一区二区女厕厕| 国产精品美女网站| 精品成人69xx.xyz| 91欧美日韩一区| 国产69久久精品成人看| 国产精品偷伦一区二区| 成人观看高清在线观看免费| 91亚洲精品在线观看| 久久久国产精品免费| 在线国产精品视频| 国产一区二区三区视频免费| 亚洲国产欧美日韩精品| 久久五月天色综合| 国内精品400部情侣激情| 国产精品视频最多的网站| 国产日韩精品电影| 久久久999精品| 精品国产一区二区三区在线观看| 亚洲永久在线观看| 91chinesevideo永久地址| 九九久久精品一区| 欧美国产日韩视频| 九九久久久久99精品| 国产精品久久久久免费a∨大胸| 亚洲欧美在线第一页| 日韩网站免费观看| 日韩av色综合| 欧美在线视频一区| 国产激情久久久久| 精品人伦一区二区三区蜜桃网站| 亚洲成人精品视频在线观看| 日日骚av一区| 日韩在线播放av| 国产成人一区三区| 91国产中文字幕| 亚洲性生活视频| 欧美丝袜美女中出在线| 亚洲欧洲日产国产网站| 久久久久国产精品一区| 日韩av在线精品| 亚洲视频综合网| 国产乱肥老妇国产一区二| 欧美精品手机在线| 播播国产欧美激情| 国自在线精品视频| 97国产suv精品一区二区62| 亚洲无亚洲人成网站77777| 久久精品成人欧美大片| 国产日韩精品一区二区| 欧美一级大片视频| 中文字幕日韩欧美精品在线观看| 久久综合电影一区| 1769国内精品视频在线播放| 久久这里只有精品99| 黑丝美女久久久| 国模精品系列视频| 国产精品美女久久久免费| 亚洲男人天堂古典| 一区二区三区国产在线观看| 久久视频国产精品免费视频在线| 欧美理论电影在线观看| 国产丝袜高跟一区| 亚洲女人天堂成人av在线| 久久在线免费观看视频| 97视频在线观看免费高清完整版在线观看| 国产精品99久久99久久久二8| 成人激情视频在线播放| 久久精品国产91精品亚洲| 亚洲精品成人久久| 国产噜噜噜噜久久久久久久久| 久久精品影视伊人网| 性色av一区二区三区| …久久精品99久久香蕉国产| 在线观看亚洲区| 在线色欧美三级视频| 色婷婷av一区二区三区久久| 国产精品一香蕉国产线看观看| 欧美成人免费全部| 欧美另类极品videosbest最新版本| 欧美日韩成人精品| 69视频在线播放| 中文字幕国产亚洲| 日本精品久久久久影院| 成人日韩在线电影| 亚洲视频在线视频| 亚洲一区久久久| 国产精品亚洲片夜色在线| 日韩在线免费av| 国产黑人绿帽在线第一区| 亚洲一区999| 中文字幕自拍vr一区二区三区| 色综合久久久久久中文网| 亚洲男人的天堂在线| 国产精品美腿一区在线看| 97视频在线观看视频免费视频| 精品视频—区二区三区免费| 81精品国产乱码久久久久久| 欧美成人中文字幕| 欧美日韩黄色大片| 精品视频9999| 精品香蕉一区二区三区| 久久国产精品免费视频| 成人网在线观看| 日韩a**站在线观看| 欧美国产精品va在线观看| 久久中文字幕国产| 亚洲精品美女久久| 亚洲国产成人精品久久久国产成人一区| 欧美老女人bb| 日韩精品极品毛片系列视频| 国产精品999999| 亚洲天堂免费观看| 精品在线欧美视频| 亚洲图片欧洲图片av| 欧美做受高潮电影o| 久久天天躁狠狠躁夜夜av| 91久久精品国产91性色| 一区二区中文字幕| 亚洲国产三级网| 亚洲国产成人精品电影| 欧美黄色片免费观看| 2020国产精品视频| 亚洲精品国产美女| 亚洲人成电影网站色| 青草青草久热精品视频在线网站| 国产美女久久久| 中文字幕一区二区精品| 成人网在线免费观看| 亚洲天堂免费在线| 45www国产精品网站| 国产在线视频2019最新视频| 国产在线精品成人一区二区三区|