動的エージェントインスタンス
2006 ワード
セキュリティチェックの例:
まず、ビジネスクラスを起業して、このビジネスインタフェースを実現します.
プロキシクラスを作成するには
テストクラス
テスト結果
------安全検査!()----------
----------------追加方法を実行します()-----------------aaaa
------安全検査!()----------
-------------------------------------------------------------------------
まず、ビジネスクラスを起業して、このビジネスインタフェースを実現します.
public class UserMangerImpl implements UserManager {
public void addUser(String name, String pws) {
System.out.println("------------ ()-------------"+name);
}
public void deleteUser(Integer id) {
System.out.println("-------------- ()-------------------");
}
public String finUserByid(Integer id) {
System.out.println("---------------- ()-------------------");
return null;
}
プロキシクラスを作成するには
public class SecurityHandler implements InvocationHandler {
private Object targetObject; //
public Object newProxy(Object targetObject){
this.targetObject=targetObject;
return Proxy.newProxyInstance(targetObject.getClass().getClassLoader(),
targetObject.getClass().getInterfaces(),
this);
}
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {
chickSecurity();
Object obj=null;
try{
obj=method.invoke(this.targetObject, args);
}catch(Exception e){
e.printStackTrace();
}
return obj;
}
public void chickSecurity(){
System.out.println("-------- !()----------");
}
テストクラス
public static void main(String[] args) {
SecurityHandler hander=new SecurityHandler();
UserManager user=(UserManager) hander.newProxy(new UserMangerImpl());
user.addUser("aaaaaaaaa", "vvv");
user.finUserByid(1);
}
テスト結果
------安全検査!()----------
----------------追加方法を実行します()-----------------aaaa
------安全検査!()----------
-------------------------------------------------------------------------