sessionfactoryproxy.java
来自「anewssystem新闻发布系统集成使用了spring hibernate f」· Java 代码 · 共 66 行
JAVA
66 行
package anni.core.mock.db.hibernate;
import java.io.Serializable;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import anni.core.dao.support.Page;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.Query;
import org.hibernate.SessionFactory;
import org.hibernate.classic.Session;
public class SessionFactoryProxy implements InvocationHandler {
/**
* logger.
*/
private static Log logger = LogFactory.getLog(SessionFactoryProxy.class);
private SessionFactory sessionFactory;
/**
*
*/
public static Object getInstance(Class clz) {
SessionFactoryProxy proxy = new SessionFactoryProxy();
proxy.sessionFactory = (SessionFactory) Proxy.newProxyInstance(clz
.getClassLoader(), new Class[] {clz}, proxy);
return proxy.sessionFactory;
}
/**
*
*/
public Object invoke(Object proxy, Method m, Object[] args)
throws Throwable {
logger.info(m);
Class clz = m.getReturnType();
String methodName = m.getName();
if (methodName.equals("openSession")) {
return (Session) SessionProxy.getInstance(Session.class,
sessionFactory);
} else if (methodName.equals("toString")) {
return "_";
}
return ProxyHelper.generateReturn(proxy, m, args);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?