public interface UserService {  
    public String getName(int id);  
  
    public Integer getAge(int id);  
}  

 

public class UserServiceImpl implements UserService {  
    @Override  
    public String getName(int id) {  
        System.out.println("------getName------");  
        return "Tom";  
    }  
  
    @Override  
    public Integer getAge(int id) {  
        System.out.println("------getAge------");  
        return 10;  
    }  
}  

  

 

2、jdk动态代理实现

动态代理  aop切面实现事务管理

 

BeanFactiory 创建注入方法时使用

               if (object.getClass().getPackage().getName().equals("")) {
                    ConnectionDynamicProxy connectionDynamicProxy = new ConnectionDynamicProxy();
                    connectionDynamicProxy.setTarget(object);

                    //daili object
                    Object proxyObject = Proxy.newProxyInstance(object.getClass().getClassLoader(),
                            object.getClass().getInterfaces(), connectionDynamicProxy);
                    return proxyObject;
                }

  

public class ConnectionDynamicProxy implements InvocationHandler{

    private Object target;

    public void setTarget(Object target) {
        this.target = target;
    }


    @Override
    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
        Object result = null;
        boolean needMyClose = false;
        Connection   conn = (Connection) AppContext.getAppContext().getObject("APP_REQUEST_THREAD_CONNECTION");
        if (conn == null) {
            conn = DBUtil.getConnection();
            needMyClose = true;
            AppContext.getAppContext().addObject("APP_REQUEST_THREAD_CONNECTION",conn);
        }
        try {
            result = method.invoke(target, args);
        } finally {
            if (needMyClose) {
                conn = (Connection) AppContext.getAppContext().getObject("APP_REQUEST_THREAD_CONNECTION");
                DBUtil.close(conn, null, null);
                AppContext.getAppContext().removeObject("APP_REQUEST_THREAD_CONNECTION");
                conn = null;
            }
        }
        return result;
    }

}
代理对象

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-09-08
  • 2021-09-25
  • 2022-12-23
  • 2021-08-29
  • 2021-08-19
猜你喜欢
  • 2021-04-30
  • 2022-12-23
  • 2021-12-30
  • 2022-12-23
  • 2021-12-27
  • 2021-04-22
  • 2022-01-08
相关资源
相似解决方案