面試官 講一講Mybatis外掛程式的原理及如何實現?

2021-10-09 13:08:56 字數 1868 閱讀 2524

public inte***ce interceptor

/**

* @intercepts 註解標記這是乙個***,其中可以指定多個@signature

* @signature 指定該***攔截的是四大物件中的哪個方法

* type:***的四大物件的型別

* method:***的方法,方法名

* args:入參的型別,可以是多個,根據方法的引數指定,以此來區分方法的過載

*/@intercepts

( )}

)public class parameterinterceptor implements interceptor

//執行目標方法

return invocation.proceed()

;}@override

public object plugin(object target)

@override

public void setproperties(properties properties)

}

/**

* @configuration:這個註解標註該類是乙個配置類

*/@configuration

public class mybatisconfig;}

}

@test

void contextloads()

//建立executor

public executor newexecutor(transaction transaction, executortype executortype)

else if (executortype.reuse == executortype)

else

if (cacheenabled)

//呼叫pluginall方法,生成**物件

executor = (executor) interceptorchain.pluginall

(executor)

; return executor;

}//建立parameterhandler

//建立resultsethandler

resulthandler resulthandler, boundsql boundsql)

//建立statementhandler

public object pluginall(object target)

//返回

return target;

}

public static object wrap(object target, interceptor interceptor)

return target;

}

@override

public object invoke(object proxy, method method, object args) throws throwable

//沒有被攔截,執行原方法

return method.invoke

(target, args);}

catch (exception e)

}

@intercepts

(

)public class pageinterceptor implements interceptor

跟面試官講Binder(零)

面試的時候,面試官問你說,簡單說一下android的binder機制,你會怎麼回答?我想,我會這麼說。在android啟動的時候,zygote程序孵化出第乙個子程序叫systemserver,而在這個程序中,很多系統提供的服務,比如activitymanagerserivce,powermanage...

講一講IP位址

ip位址組成ip位址分類 為了適應不同的網路,ip位址空間被分為5類,分別是a,b,c,d和e類,其中a,b,c類最常用,d類用於組播,e類用於科研。從上述 中可以看到,每個網路中的主機數都是2 主機位 2,那是因為網路中有一些位址被保留,不能分配給網路使用,有哪些保留位址呢?其實主要有兩類,一類叫...

講一講抽象工廠模式

1.新建產品族介面 我這裡可以理解為生產乙個產品需要兩個步驟 步驟1 public inte ce iproduct1 步驟2 public inte ce iproduct2 2.新建工廠介面 乙個工廠生產乙個產品都需要這兩個步驟 public inte ce ifactory 3.新建各個產品的...