具体实现可以参考mybatis-spring.jar中的SqlSessionTemplate
SqlSessionTemplate 继承sqlSession接口
并通过动态代理,在SqlSessionInterceptor类代理方法中实现session的自动close
注意 继承的SqlSession的getMapper方法不能使用
public Object getMapper(Class type)
{
return sqlSessionFactory.getMapper(type);
}
而要用:
public Object getMapper(Class type)
{
return getConfiguration().getMapper(type, this);
}
另外:
java动态代理链接