この記事では主にJSP開発におけるSpringメソッドインジェクションの置換メソッド実装に関するJSP情報を紹介していますので、JSPに興味のある方はぜひ参考にしてください
JSP開発におけるSpringメソッドインジェクションの置換メソッド実装
。
Spring はメソッド実装を置き換えるメカニズムを提供しており、これにより特定の Bean メソッドの実装を変更できます。たとえば、2 つの整数の合計を計算するために使用できる add() メソッドを備えた Bean がありますが、今回は 2 つの整数が同じ値を持つ場合は乗算し、それ以外の場合は加算するように実装ロジックを変更したいとします。 Spring が提供する置換メソッド実装メカニズムを使用すると、ソース コードを変更することなく、または変更することができずに、この要件を実現できます。
具体的な定義は次のとおりです。
オブジェクト を表し、メソッドは置き換える必要があり、args は対応するメソッドのパラメーターを表します。前の例では、次のクラス定義に対応する Bean があると仮定します。
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; }
public class BeanA { public int add(int a, int b) { return a+b; } } <bean id="beanA" class="com.app.BeanA"/>
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; } } }
<bean id="beanAReplacer" class="com.app.BeanAReplacer"/> <bean id="beanA" class="com.app.BeanA"> <replaced-method name="add" replacer="beanAReplacer"/> </bean>
以上がJSP開発におけるSpringメソッドインジェクションの置換メソッド実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。